diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 918840da..38343f5e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,7 +38,6 @@ jobs: - name: Run Tests shell: bash -l {0} run: | - export GCSFS_RECORD_MODE=none export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/gcsfs/tests/fake-secret.json py.test -vv gcsfs diff --git a/docs/source/developer.rst b/docs/source/developer.rst index 6793d5ba..977cf528 100644 --- a/docs/source/developer.rst +++ b/docs/source/developer.rst @@ -7,44 +7,19 @@ Please file issues and requests on github_ and we welcome pull requests. .. _github: https://github.com/dask/gcsfs/issues -Testing and VCR ---------------- - -VCR_ records requests to the remote server, so that they can be replayed during -tests - so long as the requests match exactly the original. It is set to strip -out sensitive information before writing the request and responses into yaml -files in the tests/recordings/ directory; the file-name matches the test name, -so all tests must have unique names, across all test files. - -The process is as follows: - -- Create a bucket for testing -- Set environment variables so that the tests run against your GCS - credentials, and recording occurs - - .. code-block:: bash - - export GCSFS_RECORD_MODE=all - export GCSFS_TEST_PROJECT='...' - export GCSFS_TEST_BUCKET='...' # the bucket from step 1 (without gs:// prefix). - export GCSFS_GOOGLE_TOKEN=~/.config/gcloud/application_default_credentials.json - py.test -vv -x -s gcsfs - - If ~/.config/gcloud/application_default_credentials.json file does not exist, - run ``gcloud auth application-default login`` - These variables can also be set in ``gcsfs/tests/settings.py`` - -- Run this again, setting ``GCSFS_RECORD_MODE=once``, which should alert you - if your tests make different requests the second time around - -- Finally, test as TravisCI will, using only the recordings - - .. code-block:: bash - - export GCSFS_RECORD_MODE=none - py.test -vv -x -s gcsfs - -To reset recording and start again, delete the yaml file corresponding to the -test in ``gcsfs/tests/recordings/*.yaml``. - -.. _VCR: https://vcrpy.readthedocs.io/en/latest/ +Testing +------- + +The testing framework supports using your own GCS-compliant endpoint, by +setting the "STORAGE_EMULATOR_HOST" environment variable. If this is +not set, then an emulator will be spun up using ``docker`` and +`fake-gcs-server`_. This emulator has almost all the functionality of +real GCS. A small number of tests run differently or are skipped. + +If you want to actually test against real GCS, then you should set +STORAGE_EMULATOR_HOST to "https://storage.googleapis.com" and also +provide appropriate GCSFS_TEST_BUCKET and GCSFS_TEST_PROJECT, as well +as setting your default google credentials (or providing them via the +fsspec config). + +.. _fake-gcs-server: https://github.com/fsouza/fake-gcs-server diff --git a/gcsfs/core.py b/gcsfs/core.py index c3fa1999..e6ef2a08 100644 --- a/gcsfs/core.py +++ b/gcsfs/core.py @@ -52,6 +52,7 @@ GCS_MAX_BLOCK_SIZE = 2 ** 28 DEFAULT_BLOCK_SIZE = 5 * 2 ** 20 + QUOTE_TABLE = str.maketrans( { "%": "%25", @@ -93,6 +94,22 @@ async def _req_to_text(r): return (await r.read()).decode() +def _location(): + """ + Resolves GCS HTTP location as http[s]://host + + Enables storage emulation for integration tests. + + Returns + ------- + valid http location + """ + _emulator_location = os.environ.get("STORAGE_EMULATOR_HOST", None) + return ( + _emulator_location if _emulator_location else "https://storage.googleapis.com" + ) + + class GCSFileSystem(AsyncFileSystem): r""" Connect to Google Cloud Storage. @@ -192,11 +209,15 @@ class GCSFileSystem(AsyncFileSystem): session_kwargs: dict passed on to aiohttp.ClientSession; can contain, for example, proxy settings. + endpoin_url: str + If given, use this URL (format protocol://host:port , *without* any + path part) for communication. If not given, defaults to the value + of environment variable "STORAGE_EMULATOR_HOST"; if that is not set + either, will use the standard Google endpoint. """ scopes = {"read_only", "read_write", "full_control"} retries = 6 # number of retries on http failure - base = "https://storage.googleapis.com/storage/v1/" default_block_size = DEFAULT_BLOCK_SIZE protocol = "gcs", "gs" async_impl = True @@ -217,6 +238,7 @@ def __init__( session_kwargs=None, loop=None, timeout=None, + endpoint_url=None, **kwargs, ): super().__init__( @@ -238,6 +260,7 @@ def __init__( self.requests_timeout = requests_timeout self.timeout = timeout self._session = None + self._endpoint = endpoint_url self.session_kwargs = session_kwargs or {} self.credentials = GoogleCredentials(project, access, token, check_connection) @@ -248,6 +271,14 @@ def __init__( ) weakref.finalize(self, self.close_session, self.loop, self._session) + @property + def _location(self): + return self._endpoint or _location() + + @property + def base(self): + return f"{self._location}/storage/v1/" + @property def project(self): return self.credentials.project @@ -380,6 +411,14 @@ def _process_object(bucket, object_metadata): return result + async def _make_bucket_requester_pays(self, path, state=True): + # this is really some form of setACL/chmod + # perhaps should be automatic if gcs.requester_pays + json = {"billing": {"requesterPays": state}} + await self._call("PATCH", f"b/{path}", json=json) + + make_bucket_requester_pays = sync_wrapper(_make_bucket_requester_pays) + async def _get_object(self, path): """Return object information at the given path.""" bucket, key = self.split_path(path) @@ -407,7 +446,7 @@ async def _get_object(self, path): if not str(e).startswith("Forbidden"): raise resp = await self._call( - "GET", "b/{}/o/", bucket, json_out=True, prefix=key, maxResults=1 + "GET", "b/{}/o", bucket, json_out=True, prefix=key, maxResults=1 ) for item in resp.get("items", []): if item["name"] == key: @@ -467,7 +506,7 @@ async def _do_list_objects(self, path, max_results=None, delimiter="/", prefix=" items = [] page = await self._call( "GET", - "b/{}/o/", + "b/{}/o", bucket, delimiter=delimiter, prefix=prefix, @@ -482,7 +521,7 @@ async def _do_list_objects(self, path, max_results=None, delimiter="/", prefix=" while next_page_token is not None: page = await self._call( "GET", - "b/{}/o/", + "b/{}/o", bucket, delimiter=delimiter, prefix=prefix, @@ -503,7 +542,7 @@ async def _list_buckets(self): """Return list of all buckets under the current project.""" if "" not in self.dircache: items = [] - page = await self._call("GET", "b/", project=self.project, json_out=True) + page = await self._call("GET", "b", project=self.project, json_out=True) assert page["kind"] == "storage#buckets" items.extend(page.get("items", [])) @@ -512,7 +551,7 @@ async def _list_buckets(self): while next_page_token is not None: page = await self._call( "GET", - "b/", + "b", project=self.project, pageToken=next_page_token, json_out=True, @@ -569,7 +608,7 @@ async def _mkdir( return await self._call( method="POST", - path="b/", + path="b", predefinedAcl=acl, project=self.project, predefinedDefaultObjectAcl=default_acl, @@ -601,6 +640,10 @@ async def _rmdir(self, bucket): async def _info(self, path, **kwargs): """File information about this path.""" path = self._strip_protocol(path).rstrip("/") + if "/" not in path: + out = await self._call("GET", f"b/{path}", json_out=True) + out.update(size=0, type="directory") + return out # Check directory cache for parent dir parent_path = self._parent(path) parent_cache = self._ls_from_cache(parent_path) @@ -667,13 +710,12 @@ async def _ls(self, path, detail=False, prefix="", **kwargs): else: return sorted([o["name"] for o in out]) - @classmethod - def url(cls, path): + def url(self, path): """ Get HTTP URL of the given path """ - u = "https://storage.googleapis.com/download/storage/v1/b/{}/o/{}?alt=media" - bucket, object = cls.split_path(path) + u = "{}/download/storage/v1/b/{}/o/{}?alt=media" + bucket, object = self.split_path(path) object = quote_plus(object) - return u.format(bucket, object) + return u.format(self._location, bucket, object) async def _cat_file(self, path, start=None, end=None): """ Simple one-shot get of file data """ @@ -781,12 +823,11 @@ async def _cp_file(self, path1, path2, acl=None, **kwargs): json_out=True, ) - async def _rm_file(self, path): + async def _rm_file(self, path, **kwargs): bucket, key = self.split_path(path) if key: await self._call("DELETE", "b/{}/o/{}", bucket, key) self.invalidate_cache(posixpath.dirname(self._strip_protocol(path))) - return True else: await self._rmdir(path) @@ -812,7 +853,7 @@ async def _rm_files(self, paths): ) headers, content = await self._call( "POST", - "https://storage.googleapis.com/batch/storage/v1", + f"{self._location}/batch/storage/v1", headers={ "Content-Type": 'multipart/mixed; boundary="==========' '=====7330845974216740156=="' @@ -832,20 +873,38 @@ async def _rm_files(self, paths): out = set(re.findall(pattern, txt)) raise OSError(out) + @property + def on_google(self): + return "torage.googleapis.com" in self._location + async def _rm(self, path, recursive=False, maxdepth=None, batchsize=20): paths = await self._expand_path(path, recursive=recursive, maxdepth=maxdepth) files = [p for p in paths if self.split_path(p)[1]] dirs = [p for p in paths if not self.split_path(p)[1]] - exs = await asyncio.gather( - *( - [ - self._rm_files(files[i : i + batchsize]) - for i in range(0, len(files), batchsize) - ] - ), - return_exceptions=True, - ) - exs = [ex for ex in exs if ex is not None and "No such object" not in str(ex)] + if self.on_google: + # emulators do not support batch + exs = await asyncio.gather( + *( + [ + self._rm_files(files[i : i + batchsize]) + for i in range(0, len(files), batchsize) + ] + ), + return_exceptions=True, + ) + else: + exs = await asyncio.gather( + *([self._rm_file(f) for f in files]), + return_exceptions=True, + ) + + exs = [ + ex + for ex in exs + if ex is not None + and "No such object" not in str(ex) + and not isinstance(ex, FileNotFoundError) + ] if exs: raise exs[0] await asyncio.gather(*[self._rmdir(d) for d in dirs]) @@ -1030,6 +1089,8 @@ async def _get_file_request( async def _get_file(self, rpath, lpath, callback=None, **kwargs): u2 = self.url(rpath) + if os.path.isdir(lpath): + return callback = callback or NoOpCallback() await self._get_file_request(u2, lpath, callback=callback, **kwargs) @@ -1203,7 +1264,7 @@ def info(self): def url(self): """ HTTP link to this file's data """ - return self.details["mediaLink"] + return self.fs.url(self.path) def _upload_chunk(self, final=False): """Write one part of a multi-block file upload @@ -1255,7 +1316,7 @@ def _upload_chunk(self, final=False): if "Range" in headers: end = int(headers["Range"].split("-")[1]) shortfall = (self.offset + l - 1) - end - if shortfall: + if shortfall > 0: self.checker.update(data[:-shortfall]) self.buffer = io.BytesIO(data[-shortfall:]) self.buffer.seek(shortfall) @@ -1303,8 +1364,7 @@ def discard(self): uid = re.findall("upload_id=([^&=?]+)", self.location) self.gcsfs.call( "DELETE", - "https://storage.googleapis.com/upload/storage/v1/b/%s/o" - "" % quote_plus(self.bucket), + f"{self.fs._location}/upload/storage/v1/b/{quote_plus(self.bucket)}/o", params={"uploadType": "resumable", "upload_id": uid}, json_out=True, ) @@ -1332,15 +1392,8 @@ def _fetch_range(self, start=None, end=None): start, end : None or integers if not both None, fetch only given range """ - if start is not None or end is not None: - start = start or 0 - end = end or 0 - head = {"Range": "bytes=%i-%i" % (start, end - 1)} - else: - head = None try: - _, data = self.gcsfs.call("GET", self.details["mediaLink"], headers=head) - return data + return self.gcsfs.cat_file(self.path, start=start, end=end) except RuntimeError as e: if "not satisfiable" in str(e): return b"" @@ -1372,8 +1425,7 @@ async def initiate_upload( j["metadata"] = metadata headers, _ = await fs._call( method="POST", - path="https://storage.googleapis.com/upload/storage" - "/v1/b/%s/o" % quote_plus(bucket), + path=f"{fs._location}/upload/storage/v1/b/{quote_plus(bucket)}/o", uploadType="resumable", json=j, headers={"X-Upload-Content-Type": content_type}, @@ -1395,9 +1447,7 @@ async def simple_upload( content_type="application/octet-stream", ): checker = get_consistency_checker(consistency) - path = "https://storage.googleapis.com/upload/storage/v1/b/%s/o" % quote_plus( - bucket - ) + path = f"{fs._location}/upload/storage/v1/b/{quote_plus(bucket)}/o" metadata = {"name": key} if metadatain is not None: metadata["metadata"] = metadatain diff --git a/gcsfs/credentials.py b/gcsfs/credentials.py index e9271883..c7b8d47b 100644 --- a/gcsfs/credentials.py +++ b/gcsfs/credentials.py @@ -9,8 +9,8 @@ from google.oauth2 import service_account from google.auth.transport.requests import Request import json -import os import requests +import os import pickle import requests import threading diff --git a/gcsfs/tests/conftest.py b/gcsfs/tests/conftest.py index 4cb959fd..d27bfcfa 100644 --- a/gcsfs/tests/conftest.py +++ b/gcsfs/tests/conftest.py @@ -1,124 +1,109 @@ -import pytest - -from gcsfs.core import GCSFileSystem, GoogleCredentials -from gcsfs.tests.settings import TEST_PROJECT, TEST_BUCKET -import vcr.stubs.aiohttp_stubs as aios - - -import fsspec.config +import os +import shlex +import subprocess +import time -fsspec.config.conf.pop("gcs", None) +import fsspec +import pytest +import requests + +from gcsfs import GCSFileSystem +from gcsfs.tests.settings import TEST_BUCKET + +files = { + "test/accounts.1.json": ( + b'{"amount": 100, "name": "Alice"}\n' + b'{"amount": 200, "name": "Bob"}\n' + b'{"amount": 300, "name": "Charlie"}\n' + b'{"amount": 400, "name": "Dennis"}\n' + ), + "test/accounts.2.json": ( + b'{"amount": 500, "name": "Alice"}\n' + b'{"amount": 600, "name": "Bob"}\n' + b'{"amount": 700, "name": "Charlie"}\n' + b'{"amount": 800, "name": "Dennis"}\n' + ), +} + +csv_files = { + "2014-01-01.csv": ( + b"name,amount,id\n" b"Alice,100,1\n" b"Bob,200,2\n" b"Charlie,300,3\n" + ), + "2014-01-02.csv": b"name,amount,id\n", + "2014-01-03.csv": ( + b"name,amount,id\n" b"Dennis,400,4\n" b"Edith,500,5\n" b"Frank,600,6\n" + ), +} +text_files = { + "nested/file1": b"hello\n", + "nested/file2": b"world", + "nested/nested2/file1": b"hello\n", + "nested/nested2/file2": b"world", +} +allfiles = dict(**files, **csv_files, **text_files) +a = TEST_BUCKET + "/tmp/test/a" +b = TEST_BUCKET + "/tmp/test/b" +c = TEST_BUCKET + "/tmp/test/c" +d = TEST_BUCKET + "/tmp/test/d" + + +def stop_docker(container): + cmd = shlex.split('docker ps -a -q --filter "name=%s"' % container) + cid = subprocess.check_output(cmd).strip().decode() + if cid: + subprocess.call(["docker", "rm", "-f", "-v", cid]) + + +@pytest.fixture(scope="module") +def docker_gcs(): + if "STORAGE_EMULATOR_HOST" in os.environ: + # assume using real API or otherwise have a server already set up + yield os.environ["STORAGE_EMULATOR_HOST"] + return + container = "gcsfs_test" + cmd = ( + "docker run -d -p 4443:4443 --name gcsfs_test fsouza/fake-gcs-server:latest -scheme " + "http -public-host http://localhost:4443 -external-url http://localhost:4443" + ) + stop_docker(container) + subprocess.check_output(shlex.split(cmd)) + url = "http://0.0.0.0:4443" + timeout = 10 + while True: + try: + r = requests.get(url + "/storage/v1/b") + if r.ok: + yield url + break + except Exception as e: # noqa: E722 + timeout -= 1 + if timeout < 0: + raise SystemError from e + time.sleep(1) + stop_docker(container) @pytest.fixture -def token_restore(): - cache = GoogleCredentials.tokens +def gcs(docker_gcs, populate=True): + GCSFileSystem.clear_instance_cache() + gcs = fsspec.filesystem("gcs", endpoint_url=docker_gcs) try: - GoogleCredentials.tokens = {} - yield + # ensure we're empty. + try: + gcs.rm(TEST_BUCKET, recursive=True) + except FileNotFoundError: + pass + try: + gcs.mkdir(TEST_BUCKET) + except Exception: + pass + + if populate: + gcs.pipe({TEST_BUCKET + "/" + k: v for k, v in allfiles.items()}) + gcs.invalidate_cache() + yield gcs finally: - GoogleCredentials.tokens = cache - GoogleCredentials._save_tokens() - GCSFileSystem.clear_instance_cache() - - -# patch; for some reason, original wants vcr_response["url"], which is empty -def build_response(vcr_request, vcr_response, history): - request_info = aios.RequestInfo( - url=aios.URL(vcr_request.url), - method=vcr_request.method, - headers=aios.CIMultiDictProxy(aios.CIMultiDict(vcr_request.headers)), - real_url=aios.URL(vcr_request.url), - ) - response = aios.MockClientResponse( - vcr_request.method, aios.URL(vcr_request.url), request_info=request_info - ) - response.status = vcr_response["status"]["code"] - response._body = vcr_response["body"].get("string", b"") - response.reason = vcr_response["status"]["message"] - head = { - k: v[0] if isinstance(v, list) else v - for k, v in vcr_response["headers"].items() - } - response._headers = aios.CIMultiDictProxy(aios.CIMultiDict(head)) - response._history = tuple(history) - - response.close() - return response - - -aios.build_response = build_response - - -# patch: but the value of body back in the stream, to enable streaming reads -# https://github.com/kevin1024/vcrpy/pull/509 -async def record_response(cassette, vcr_request, response): - """Record a VCR request-response chain to the cassette.""" - - try: - byts = await response.read() - body = {"string": byts} - if byts: - if response.content._buffer_offset: - response.content._buffer[0] = response.content._buffer[0][ - response.content._buffer_offset : - ] - response.content._buffer_offset = 0 - response.content._size += len(byts) - response.content._cursor -= len(byts) - response.content._buffer.appendleft(byts) - response.content._eof_counter = 0 - - except aios.ClientConnectionError: - body = {} - - vcr_response = { - "status": {"code": response.status, "message": response.reason}, - "headers": aios._serialize_headers(response.headers), - "body": body, # NOQA: E999 - "url": str(response.url) - .replace(TEST_BUCKET, "gcsfs-testing") - .replace(TEST_PROJECT, "test_project"), - } - - cassette.append(vcr_request, vcr_response) - - -aios.record_response = record_response - - -def play_responses(cassette, vcr_request): - history = [] - vcr_response = cassette.play_response(vcr_request) - response = build_response(vcr_request, vcr_response, history) - - # If we're following redirects, continue playing until we reach - # our final destination. - while 300 <= response.status <= 399: - if "Location" not in response.headers: - # Not a redirect, an instruction not to call again - break - next_url = aios.URL(response.url).with_path(response.headers["location"]) - - # Make a stub VCR request that we can then use to look up the recorded - # VCR request saved to the cassette. This feels a little hacky and - # may have edge cases based on the headers we're providing (e.g. if - # there's a matcher that is used to filter by headers). - vcr_request = aios.Request( - "GET", - str(next_url), - None, - aios._serialize_headers(response.request_info.headers), - ) - vcr_request = cassette.find_requests_with_most_matches(vcr_request)[0][0] - - # Tack on the response we saw from the redirect into the history - # list that is added on to the final response. - history.append(response) - vcr_response = aios.cassette.play_response(vcr_request) - response = aios.build_response(vcr_request, vcr_response, history) - - return response - - -aios.play_responses = play_responses + try: + gcs.rm(gcs.find(TEST_BUCKET)) + except: # noqa: E722 + pass diff --git a/gcsfs/tests/recordings/test_GoogleCredentials_None.yaml b/gcsfs/tests/recordings/test_GoogleCredentials_None.yaml deleted file mode 100644 index 28ce84e2..00000000 --- a/gcsfs/tests/recordings/test_GoogleCredentials_None.yaml +++ /dev/null @@ -1,46 +0,0 @@ -interactions: -- request: - body: assertion=xxx&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '795' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIADqClWAC/6tWSkxOTi0uji/Jz07NU7JSUKqoqFDSUVAC8+NLKgtSQYJOqYlFqUVKtQDkjfr2 - LwAAAA== - headers: - Cache-Control: - - private - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=UTF-8 - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -version: 1 diff --git a/gcsfs/tests/recordings/test_array.yaml b/gcsfs/tests/recordings/test_array.yaml deleted file mode 100644 index 8cd83c0d..00000000 --- a/gcsfs/tests/recordings/test_array.yaml +++ /dev/null @@ -1,367 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABRKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyca6DK1Nc2-eS0BlSgWduQQ508jwW-dQSimNTAe1nXKlDHIFuHCcS-YmgoPnrptBHHHMPQE--BzgsJoG-vCCu6WKMbZw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - headers: - Content-Length: - - '1000' - Content-Range: - - bytes 0-999/1000 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyca6DK1Nc2-eS0BlSgWduQQ508jwW-dQSimNTAe1nXKlDHIFuHCcS-YmgoPnrptBHHHMPQE--BzgsJoG-vCCu6WKMbZw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658709524008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658709524008&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658709524008\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"1000\",\n \"md5Hash\": \"dkRnLQSSkPA5DZyZPH00PQ==\",\n - \ \"crc32c\": \"jS1TJA==\",\n \"etag\": \"CKjcu5Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:29.544Z\",\n \"updated\": \"2021-05-10T14:58:29.544Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:29.544Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '753' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKjcu5Wwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyca6DK1Nc2-eS0BlSgWduQQ508jwW-dQSimNTAe1nXKlDHIFuHCcS-YmgoPnrptBHHHMPQE--BzgsJoG-vCCu6WKMbZw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658709524008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658709524008&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658709524008\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"1000\",\n \"md5Hash\": \"dkRnLQSSkPA5DZyZPH00PQ==\",\n - \ \"crc32c\": \"jS1TJA==\",\n \"etag\": \"CKjcu5Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:29.544Z\",\n \"updated\": \"2021-05-10T14:58:29.544Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:29.544Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '753' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKjcu5Wwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - Range: - - bytes=0-999 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?alt=media&generation=1620658709524008 - response: - body: - string: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '1000' - Content-Range: - - bytes 0-999/1000 - Content-Type: - - application/octet-stream - Etag: - - CKjcu5Wwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658709524008' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658709524008&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658709524008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658709524008&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658709524008\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"1000\",\n \"md5Hash\": \"dkRnLQSSkPA5DZyZPH00PQ==\",\n \"crc32c\": - \"jS1TJA==\",\n \"etag\": \"CKjcu5Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:29.544Z\",\n \"updated\": \"2021-05-10T14:58:29.544Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:29.544Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '879' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_MInQxIXPixpW3EFGI_wszI5hDzky3lN1\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:30 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_MInQxIXPixpW3EFGI_wszI5hDzky3lN1--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_MInQxIXPixpW3EFGI_wszI5hDzky3lN1 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_attrs.yaml b/gcsfs/tests/recordings/test_attrs.yaml deleted file mode 100644 index 65e92116..00000000 --- a/gcsfs/tests/recordings/test_attrs.yaml +++ /dev/null @@ -1,711 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABZKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxWrLY4ihwbpJEqt0e9fvR-JWKFDcRIajzf7qLyL1NlrS07Ny8vH3MboaSh3QLD7UGs-NvcYA6IMY0qyWodwvGQJ9-4sg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxWrLY4ihwbpJEqt0e9fvR-JWKFDcRIajzf7qLyL1NlrS07Ny8vH3MboaSh3QLD7UGs-NvcYA6IMY0qyWodwvGQJ9-4sg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658711324135\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658711324135&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658711324135\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COfLqZawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:31.344Z\",\n \"updated\": \"2021-05-10T14:58:31.344Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:31.344Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COfLqZawv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxWrLY4ihwbpJEqt0e9fvR-JWKFDcRIajzf7qLyL1NlrS07Ny8vH3MboaSh3QLD7UGs-NvcYA6IMY0qyWodwvGQJ9-4sg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658711324135\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658711324135&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658711324135\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COfLqZawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:31.344Z\",\n \"updated\": \"2021-05-10T14:58:31.344Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:31.344Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COfLqZawv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658711324135\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658711324135&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658711324135\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COfLqZawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:31.344Z\",\n \"updated\": \"2021-05-10T14:58:31.344Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:31.344Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COfLqZawv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxyNA3ZaYt71wNJ_ELgTpD1_4lGOWoJ42m5L4WG6kuPC3ht-oiY0wzAN2G4NOVO6arktG5PmKbNX2UNzjwPhLGGQd-xGw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxyNA3ZaYt71wNJ_ELgTpD1_4lGOWoJ42m5L4WG6kuPC3ht-oiY0wzAN2G4NOVO6arktG5PmKbNX2UNzjwPhLGGQd-xGw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658711959948\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658711959948&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658711959948\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIyz0Jawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.031Z\",\n \"updated\": \"2021-05-10T14:58:32.031Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.031Z\",\n \"metadata\": - {\n \"foo\": \"blob\"\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '789' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIyz0Jawv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxyNA3ZaYt71wNJ_ELgTpD1_4lGOWoJ42m5L4WG6kuPC3ht-oiY0wzAN2G4NOVO6arktG5PmKbNX2UNzjwPhLGGQd-xGw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658711959948\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658711959948&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658711959948\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIyz0Jawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.031Z\",\n \"updated\": \"2021-05-10T14:58:32.031Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.031Z\",\n \"metadata\": - {\n \"foo\": \"blob\"\n }\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '789' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIyz0Jawv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: PATCH - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?fields=metadata - response: - body: - string: "{\n \"metadata\": {\n \"foo\": \"blah\"\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '42' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIyz0Jawv/ACEAI= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?fields=metadata -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658711959948\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658711959948&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658711959948\",\n \"metageneration\": \"2\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIyz0Jawv/ACEAI=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.031Z\",\n \"updated\": \"2021-05-10T14:58:32.227Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.031Z\",\n \"metadata\": - {\n \"foo\": \"blah\"\n }\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '789' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIyz0Jawv/ACEAI= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658711959948\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658711959948&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658711959948\",\n \"metageneration\": \"2\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIyz0Jawv/ACEAI=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.031Z\",\n \"updated\": \"2021-05-10T14:58:32.227Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.031Z\",\n \"metadata\": - {\n \"foo\": \"blah\"\n }\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '789' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIyz0Jawv/ACEAI= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzkDZLJgMoDgKtiJ4zTrLle2FeSjXTEt-S6BPeNGpcbZvbh8KQbtxDC2fyu43iC5z6OgzNIMRdeWa1QlXz331spNnkubA - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzkDZLJgMoDgKtiJ4zTrLle2FeSjXTEt-S6BPeNGpcbZvbh8KQbtxDC2fyu43iC5z6OgzNIMRdeWa1QlXz331spNnkubA - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658712781890\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658712781890&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658712781890\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CMLIgpewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.854Z\",\n \"updated\": \"2021-05-10T14:58:32.854Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.854Z\",\n \"metadata\": - {\n \"something\": \"not\"\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '794' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMLIgpewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzkDZLJgMoDgKtiJ4zTrLle2FeSjXTEt-S6BPeNGpcbZvbh8KQbtxDC2fyu43iC5z6OgzNIMRdeWa1QlXz331spNnkubA -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658712781890\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658712781890&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658712781890\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CMLIgpewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.854Z\",\n \"updated\": \"2021-05-10T14:58:32.854Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.854Z\",\n \"metadata\": - {\n \"something\": \"not\"\n }\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '794' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMLIgpewv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658712781890\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658712781890&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658712781890\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CMLIgpewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.854Z\",\n \"updated\": \"2021-05-10T14:58:32.854Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.854Z\",\n \"metadata\": - {\n \"something\": \"not\"\n }\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '794' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMLIgpewv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658712781890\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658712781890&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658712781890\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CMLIgpewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:32.854Z\",\n \"updated\": \"2021-05-10T14:58:32.854Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:32.854Z\",\n \"metadata\": - {\n \"something\": \"not\"\n }\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '932' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_YdJfkkkd5K5tHmyiGBEqlLgW4VIBftR2\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:33 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_YdJfkkkd5K5tHmyiGBEqlLgW4VIBftR2--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_YdJfkkkd5K5tHmyiGBEqlLgW4VIBftR2 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_bad_open.yaml b/gcsfs/tests/recordings/test_bad_open.yaml deleted file mode 100644 index 3a81b39a..00000000 --- a/gcsfs/tests/recordings/test_bad_open.yaml +++ /dev/null @@ -1,250 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIALVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_bigger_than_block_read.yaml b/gcsfs/tests/recordings/test_bigger_than_block_read.yaml deleted file mode 100644 index 5976d4e4..00000000 --- a/gcsfs/tests/recordings/test_bigger_than_block_read.yaml +++ /dev/null @@ -1,1140 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABFKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658706210521\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658706210521&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706210521\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CNm98ZOwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:26.230Z\",\n - \ \"updated\": \"2021-05-10T14:58:26.230Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:26.230Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNm98ZOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658706291365\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658706291365&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658706291365\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKW19pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.311Z\",\n \"updated\": \"2021-05-10T14:58:26.311Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.311Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKW19pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658706294124\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658706294124&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658706294124\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COzK9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.327Z\",\n \"updated\": \"2021-05-10T14:58:26.327Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.327Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COzK9pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658706293660\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658706293660&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658706293660\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJzH9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.325Z\",\n \"updated\": \"2021-05-10T14:58:26.325Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.325Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJzH9pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658706295893\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658706295893&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658706295893\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNXY9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.327Z\",\n \"updated\": \"2021-05-10T14:58:26.327Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.327Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNXY9pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658706299098\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658706299098&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658706299098\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CNrx9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.329Z\",\n \"updated\": \"2021-05-10T14:58:26.329Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.329Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNrx9pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658706299857\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658706299857&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706299857\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CNH39pOwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:26.333Z\",\n - \ \"updated\": \"2021-05-10T14:58:26.333Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:26.333Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNH39pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658706300041\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658706300041&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706300041\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CIn59pOwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:26.333Z\",\n - \ \"updated\": \"2021-05-10T14:58:26.333Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:26.333Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIn59pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658706303420\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658706303420&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706303420\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CLyT95Owv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:26.337Z\",\n - \ \"updated\": \"2021-05-10T14:58:26.337Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:26.337Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLyT95Owv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658706295893\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658706295893&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658706295893\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNXY9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.327Z\",\n \"updated\": \"2021-05-10T14:58:26.327Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.327Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNXY9pOwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: - Range: - - bytes=0-22 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658706295893 - response: - body: - string: 'name,amount,id - - Alice,10' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '23' - Content-Range: - - bytes 0-22/51 - Content-Type: - - application/octet-stream - Etag: - - CNXY9pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658706295893' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658706295893&alt=media -- request: - body: null - headers: - Range: - - bytes=23-42 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658706295893 - response: - body: - string: '0,1 - - Bob,200,2 - - Charli' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '20' - Content-Range: - - bytes 23-42/51 - Content-Type: - - application/octet-stream - Etag: - - CNXY9pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658706295893' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658706295893&alt=media -- request: - body: null - headers: - Range: - - bytes=43-50 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658706295893 - response: - body: - string: 'e,300,3 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '8' - Content-Range: - - bytes 43-50/51 - Content-Type: - - application/octet-stream - Etag: - - CNXY9pOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658706295893' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658706295893&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658706295893\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658706295893&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706295893\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNXY9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.327Z\",\n \"updated\": \"2021-05-10T14:58:26.327Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.327Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658706291365\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658706291365&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706291365\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKW19pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.311Z\",\n \"updated\": \"2021-05-10T14:58:26.311Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.311Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658706299098\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658706299098&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706299098\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CNrx9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.329Z\",\n \"updated\": \"2021-05-10T14:58:26.329Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.329Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658706293660\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658706293660&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706293660\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJzH9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.325Z\",\n \"updated\": \"2021-05-10T14:58:26.325Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.325Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658706294124\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658706294124&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706294124\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COzK9pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.327Z\",\n \"updated\": \"2021-05-10T14:58:26.327Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.327Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658706299857\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658706299857&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706299857\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNH39pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.333Z\",\n \"updated\": \"2021-05-10T14:58:26.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.333Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658706303420\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658706303420&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706303420\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLyT95Owv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.337Z\",\n \"updated\": \"2021-05-10T14:58:26.337Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.337Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658706210521\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658706210521&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706210521\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNm98ZOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.230Z\",\n \"updated\": \"2021-05-10T14:58:26.230Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.230Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658706300041\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658706300041&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658706300041\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIn59pOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:26.333Z\",\n \"updated\": \"2021-05-10T14:58:26.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:26.333Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:26 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:27 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_G0eOnOf1ttsvh5rpoKW8ZQ7K1LVRmIoQ - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_cat_file.yaml b/gcsfs/tests/recordings/test_cat_file.yaml deleted file mode 100644 index c14541c9..00000000 --- a/gcsfs/tests/recordings/test_cat_file.yaml +++ /dev/null @@ -1,1152 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAMVJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658630135699\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658630135699&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630135699\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJOfzu+vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:10.155Z\",\n - \ \"updated\": \"2021-05-10T14:57:10.155Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:10.155Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJOfzu+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658630199512\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658630199512&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658630199512\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNiR0u+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.231Z\",\n \"updated\": \"2021-05-10T14:57:10.231Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.231Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNiR0u+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658630210446\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658630210446&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630210446\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CI7n0u+vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:10.243Z\",\n - \ \"updated\": \"2021-05-10T14:57:10.243Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:10.243Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI7n0u+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658630216581\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658630216581&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658630216581\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIWX0++vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.244Z\",\n \"updated\": \"2021-05-10T14:57:10.244Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.244Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIWX0++vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658630225321\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658630225321&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630225321\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CKnb0++vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:10.254Z\",\n - \ \"updated\": \"2021-05-10T14:57:10.254Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:10.254Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKnb0++vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658630235188\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658630235188&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630235188\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CLSo1O+vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:10.268Z\",\n - \ \"updated\": \"2021-05-10T14:57:10.268Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:10.268Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLSo1O+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658630281604\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658630281604&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658630281604\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIST1++vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.301Z\",\n \"updated\": \"2021-05-10T14:57:10.301Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.301Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIST1++vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658630487977\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658630487977&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658630487977\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKnf4++vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.507Z\",\n \"updated\": \"2021-05-10T14:57:10.507Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.507Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKnf4++vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658630528885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658630528885&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658630528885\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPWe5u+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.548Z\",\n \"updated\": \"2021-05-10T14:57:10.548Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.548Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPWe5u+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CJOfzu+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658630135699' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: - Range: - - bytes=1-9 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '"amount":' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '9' - Content-Range: - - bytes 1-9/133 - Content-Type: - - application/octet-stream - Etag: - - CJOfzu+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658630135699' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: - Range: - - bytes=1- - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '132' - Content-Range: - - bytes 1-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJOfzu+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658630135699' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: - Range: - - bytes=0-0 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '1' - Content-Range: - - bytes 0-0/133 - Content-Type: - - application/octet-stream - Etag: - - CJOfzu+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658630135699' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658630281604\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658630281604&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630281604\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIST1++vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.301Z\",\n \"updated\": \"2021-05-10T14:57:10.301Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.301Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658630487977\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658630487977&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630487977\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKnf4++vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.507Z\",\n \"updated\": \"2021-05-10T14:57:10.507Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.507Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658630528885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658630528885&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630528885\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPWe5u+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.548Z\",\n \"updated\": \"2021-05-10T14:57:10.548Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.548Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658630199512\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658630199512&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630199512\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNiR0u+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.231Z\",\n \"updated\": \"2021-05-10T14:57:10.231Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.231Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658630216581\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658630216581&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630216581\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIWX0++vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.244Z\",\n \"updated\": \"2021-05-10T14:57:10.244Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.244Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658630235188\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658630235188&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630235188\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLSo1O+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.268Z\",\n \"updated\": \"2021-05-10T14:57:10.268Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.268Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658630225321\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658630225321&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630225321\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKnb0++vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.254Z\",\n \"updated\": \"2021-05-10T14:57:10.254Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.254Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658630135699\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658630135699&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630135699\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJOfzu+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.155Z\",\n \"updated\": \"2021-05-10T14:57:10.155Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.155Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658630210446\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658630210446&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658630210446\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CI7n0u+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:10.243Z\",\n \"updated\": \"2021-05-10T14:57:10.243Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:10.243Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:11 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:11 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_qEEadfDAemElu0Kom2xPDizHq2cRaNZY - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_copy.yaml b/gcsfs/tests/recordings/test_copy.yaml deleted file mode 100644 index 1df85eb1..00000000 --- a/gcsfs/tests/recordings/test_copy.yaml +++ /dev/null @@ -1,1142 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIALZJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658615474339\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658615474339&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615474339\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CKOxz+ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:55.493Z\",\n - \ \"updated\": \"2021-05-10T14:56:55.493Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:55.493Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKOxz+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658615537079\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658615537079&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658615537079\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLeb0+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.556Z\",\n \"updated\": \"2021-05-10T14:56:55.556Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.556Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLeb0+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658615541334\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658615541334&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615541334\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CNa80+ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:55.570Z\",\n - \ \"updated\": \"2021-05-10T14:56:55.570Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:55.570Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNa80+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658615542283\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658615542283&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658615542283\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIvE0+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.574Z\",\n \"updated\": \"2021-05-10T14:56:55.574Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.574Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIvE0+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658615548833\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658615548833&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615548833\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CKH30+ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:55.580Z\",\n - \ \"updated\": \"2021-05-10T14:56:55.580Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:55.580Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKH30+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658615548350\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658615548350&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658615548350\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CL7z0+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.580Z\",\n \"updated\": \"2021-05-10T14:56:55.580Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.580Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL7z0+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658615549298\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658615549298&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615549298\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CPL60+ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:55.582Z\",\n - \ \"updated\": \"2021-05-10T14:56:55.582Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:55.582Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPL60+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658615740076\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658615740076&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658615740076\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKzN3+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.759Z\",\n \"updated\": \"2021-05-10T14:56:55.759Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.759Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKzN3+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658616580128\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658616580128&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658616580128\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKDwkumvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:56.600Z\",\n \"updated\": \"2021-05-10T14:56:56.600Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:56.600Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKDwkumvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/test%2Faccounts.1.json2 - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json2/1620658616750330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?generation=1620658616750330&alt=media\",\n - \ \"name\": \"test/accounts.1.json2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658616750330\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CPqhnemvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:56.770Z\",\n \"updated\": \"2021-05-10T14:56:56.770Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:56.770Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/test%2Faccounts.1.json2 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CKOxz+ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658615474339' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CPqhnemvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658616750330' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658615548350\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658615548350&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615548350\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CL7z0+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.580Z\",\n \"updated\": \"2021-05-10T14:56:55.580Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.580Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658615537079\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658615537079&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615537079\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLeb0+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.556Z\",\n \"updated\": \"2021-05-10T14:56:55.556Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.556Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658616580128\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658616580128&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658616580128\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKDwkumvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:56.600Z\",\n \"updated\": \"2021-05-10T14:56:56.600Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:56.600Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658615740076\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658615740076&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615740076\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKzN3+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.759Z\",\n \"updated\": \"2021-05-10T14:56:55.759Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.759Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658615542283\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658615542283&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615542283\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIvE0+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.574Z\",\n \"updated\": \"2021-05-10T14:56:55.574Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.574Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658615541334\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658615541334&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615541334\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNa80+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.570Z\",\n \"updated\": \"2021-05-10T14:56:55.570Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.570Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658615548833\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658615548833&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615548833\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKH30+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.580Z\",\n \"updated\": \"2021-05-10T14:56:55.580Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.580Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658615474339\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658615474339&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615474339\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CKOxz+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.493Z\",\n \"updated\": \"2021-05-10T14:56:55.493Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.493Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json2/1620658616750330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?generation=1620658616750330&alt=media\",\n - \ \"name\": \"test/accounts.1.json2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658616750330\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CPqhnemvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:56.770Z\",\n \"updated\": \"2021-05-10T14:56:56.770Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:56.770Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658615549298\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658615549298&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658615549298\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CPL60+ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:55.582Z\",\n \"updated\": \"2021-05-10T14:56:55.582Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:55.582Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8552' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:57 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:57 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_9baH25kTaTpvd1peLc5seEy8o9NppGtV - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_copy_errors.yaml b/gcsfs/tests/recordings/test_copy_errors.yaml deleted file mode 100644 index 8725a4ec..00000000 --- a/gcsfs/tests/recordings/test_copy_errors.yaml +++ /dev/null @@ -1,1843 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIALxJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658621100885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658621100885&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621100885\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CNXmpuuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:01.120Z\",\n - \ \"updated\": \"2021-05-10T14:57:01.120Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:01.120Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNXmpuuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658621184400\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658621184400&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658621184400\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CJDzq+uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.204Z\",\n \"updated\": \"2021-05-10T14:57:01.204Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.204Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJDzq+uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658621188223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658621188223&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621188223\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CP+QrOuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:01.217Z\",\n - \ \"updated\": \"2021-05-10T14:57:01.217Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:01.217Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP+QrOuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658621193210\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658621193210&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658621193210\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CPq3rOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.221Z\",\n \"updated\": \"2021-05-10T14:57:01.221Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.221Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPq3rOuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658621362566\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658621362566&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658621362566\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIbjtuuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.389Z\",\n \"updated\": \"2021-05-10T14:57:01.389Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.389Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIbjtuuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658621372675\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658621372675&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658621372675\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIOyt+uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.405Z\",\n \"updated\": \"2021-05-10T14:57:01.405Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.405Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIOyt+uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658621373333\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658621373333&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621373333\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CJW3t+uvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:01.406Z\",\n - \ \"updated\": \"2021-05-10T14:57:01.406Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:01.406Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJW3t+uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658621383491\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658621383491&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621383491\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CMOGuOuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:01.416Z\",\n - \ \"updated\": \"2021-05-10T14:57:01.416Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:01.416Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMOGuOuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658622381040\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658622381040&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658622381040\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPD39Ouvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.400Z\",\n \"updated\": \"2021-05-10T14:57:02.400Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.400Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPD39Ouvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fnotafile/rewriteTo/b/gcsfs-testing/o/dest1%2Fnotafile - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test/notafile\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/test/notafile\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '259' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fnotafile/rewriteTo/b/gcsfs-testing/o/dest1%2Fnotafile -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.1.json/1620658622600338\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json?generation=1620658622600338&alt=media\",\n - \ \"name\": \"dest1/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622600338\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJKpguyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.620Z\",\n \"updated\": \"2021-05-10T14:57:02.620Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.620Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.1.json -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.2.json/1620658622605520\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json?generation=1620658622605520&alt=media\",\n - \ \"name\": \"dest1/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622605520\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CNDRguyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.634Z\",\n \"updated\": \"2021-05-10T14:57:02.634Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.634Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.2.json -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fnotafile/rewriteTo/b/gcsfs-testing/o/dest1%2Fnotafile - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test/notafile\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/test/notafile\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '259' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fnotafile/rewriteTo/b/gcsfs-testing/o/dest1%2Fnotafile -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.1.json/1620658622775644\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json?generation=1620658622775644&alt=media\",\n - \ \"name\": \"dest1/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622775644\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNyCjeyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.843Z\",\n \"updated\": \"2021-05-10T14:57:02.843Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.843Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.1.json -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.2.json/1620658622773650\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json?generation=1620658622773650&alt=media\",\n - \ \"name\": \"dest1/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622773650\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CJLzjOyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.844Z\",\n \"updated\": \"2021-05-10T14:57:02.844Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.844Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest1%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=dest1%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.1.json/1620658622775644\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json?generation=1620658622775644&alt=media\",\n - \ \"name\": \"dest1/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622775644\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNyCjeyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.843Z\",\n \"updated\": \"2021-05-10T14:57:02.843Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.843Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.2.json/1620658622773650\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json?generation=1620658622773650&alt=media\",\n - \ \"name\": \"dest1/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622773650\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CJLzjOyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.844Z\",\n \"updated\": \"2021-05-10T14:57:02.844Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.844Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1787' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=dest1/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658621100885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658621100885&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621100885\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNXmpuuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.120Z\",\n \"updated\": \"2021-05-10T14:57:01.120Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.120Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658621188223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658621188223&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621188223\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP+QrOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.217Z\",\n \"updated\": \"2021-05-10T14:57:01.217Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.217Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658621100885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658621100885&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621100885\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNXmpuuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.120Z\",\n \"updated\": \"2021-05-10T14:57:01.120Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.120Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658621188223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658621188223&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621188223\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP+QrOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.217Z\",\n \"updated\": \"2021-05-10T14:57:01.217Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.217Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658621100885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658621100885&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621100885\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNXmpuuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.120Z\",\n \"updated\": \"2021-05-10T14:57:01.120Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.120Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658621188223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658621188223&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621188223\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP+QrOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.217Z\",\n \"updated\": \"2021-05-10T14:57:01.217Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.217Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2F/rewriteTo/b/gcsfs-testing/o/dest2%2F - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test/\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test/\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '243' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2F/rewriteTo/b/gcsfs-testing/o/dest2%2F -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.1.json/1620658623986233\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json?generation=1620658623986233&alt=media\",\n - \ \"name\": \"dest2/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658623986233\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CLn01uyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.005Z\",\n \"updated\": \"2021-05-10T14:57:04.005Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.005Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.1.json -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.2.json/1620658623986921\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json?generation=1620658623986921&alt=media\",\n - \ \"name\": \"dest2/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658623986921\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COn51uyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.019Z\",\n \"updated\": \"2021-05-10T14:57:04.019Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.019Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658621100885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658621100885&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621100885\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNXmpuuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.120Z\",\n \"updated\": \"2021-05-10T14:57:01.120Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.120Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658621188223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658621188223&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621188223\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP+QrOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.217Z\",\n \"updated\": \"2021-05-10T14:57:01.217Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.217Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2F/rewriteTo/b/gcsfs-testing/o/dest2%2F - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test/\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test/\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '243' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2F/rewriteTo/b/gcsfs-testing/o/dest2%2F -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.1.json/1620658624344509\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json?generation=1620658624344509&alt=media\",\n - \ \"name\": \"dest2/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658624344509\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CL3j7Oyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.412Z\",\n \"updated\": \"2021-05-10T14:57:04.412Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.412Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.1.json -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.2.json/1620658624346873\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json?generation=1620658624346873&alt=media\",\n - \ \"name\": \"dest2/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658624346873\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CPn17Oyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.414Z\",\n \"updated\": \"2021-05-10T14:57:04.414Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.414Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json/rewriteTo/b/gcsfs-testing/o/dest2%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=dest2%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.1.json/1620658624344509\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json?generation=1620658624344509&alt=media\",\n - \ \"name\": \"dest2/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658624344509\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CL3j7Oyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.412Z\",\n \"updated\": \"2021-05-10T14:57:04.412Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.412Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.2.json/1620658624346873\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json?generation=1620658624346873&alt=media\",\n - \ \"name\": \"dest2/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658624346873\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CPn17Oyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.414Z\",\n \"updated\": \"2021-05-10T14:57:04.414Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.414Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1787' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=dest2/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658621193210\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658621193210&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621193210\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CPq3rOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.221Z\",\n \"updated\": \"2021-05-10T14:57:01.221Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.221Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658621184400\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658621184400&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621184400\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CJDzq+uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.204Z\",\n \"updated\": \"2021-05-10T14:57:01.204Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.204Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658622381040\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658622381040&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622381040\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPD39Ouvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.400Z\",\n \"updated\": \"2021-05-10T14:57:02.400Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.400Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.1.json/1620658622775644\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json?generation=1620658622775644&alt=media\",\n - \ \"name\": \"dest1/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622775644\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNyCjeyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.843Z\",\n \"updated\": \"2021-05-10T14:57:02.843Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.843Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest1/accounts.2.json/1620658622773650\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json?generation=1620658622773650&alt=media\",\n - \ \"name\": \"dest1/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658622773650\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CJLzjOyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:02.844Z\",\n \"updated\": \"2021-05-10T14:57:02.844Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:02.844Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.1.json/1620658624344509\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json?generation=1620658624344509&alt=media\",\n - \ \"name\": \"dest2/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658624344509\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CL3j7Oyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.412Z\",\n \"updated\": \"2021-05-10T14:57:04.412Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.412Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest2/accounts.2.json/1620658624346873\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json?generation=1620658624346873&alt=media\",\n - \ \"name\": \"dest2/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658624346873\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CPn17Oyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:04.414Z\",\n \"updated\": \"2021-05-10T14:57:04.414Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:04.414Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658621362566\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658621362566&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621362566\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIbjtuuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.389Z\",\n \"updated\": \"2021-05-10T14:57:01.389Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.389Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658621372675\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658621372675&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621372675\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIOyt+uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.405Z\",\n \"updated\": \"2021-05-10T14:57:01.405Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.405Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658621383491\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658621383491&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621383491\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMOGuOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.416Z\",\n \"updated\": \"2021-05-10T14:57:01.416Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.416Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658621373333\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658621373333&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621373333\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJW3t+uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.406Z\",\n \"updated\": \"2021-05-10T14:57:01.406Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.406Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658621100885\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658621100885&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621100885\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNXmpuuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.120Z\",\n \"updated\": \"2021-05-10T14:57:01.120Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.120Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658621188223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658621188223&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658621188223\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP+QrOuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:01.217Z\",\n \"updated\": \"2021-05-10T14:57:01.217Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:01.217Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '11159' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest1%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest2%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:04 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:04 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:04 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:04 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:04 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:04 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:04 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:04 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:05 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:05 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:05 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:05 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:05 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_TZjovV7FiA57ibGRmgsmPsZZnzg03JDj - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_copy_recursive.yaml b/gcsfs/tests/recordings/test_copy_recursive.yaml deleted file mode 100644 index 81f9a3cd..00000000 --- a/gcsfs/tests/recordings/test_copy_recursive.yaml +++ /dev/null @@ -1,1592 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIALlJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658618300571\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658618300571&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618300571\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJvx++mvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:58.320Z\",\n - \ \"updated\": \"2021-05-10T14:56:58.320Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:58.320Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJvx++mvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658618401465\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658618401465&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618401465\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CLmFguqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:58.433Z\",\n - \ \"updated\": \"2021-05-10T14:56:58.433Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:58.433Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLmFguqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658618404407\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658618404407&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618404407\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLecguqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.434Z\",\n \"updated\": \"2021-05-10T14:56:58.434Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.434Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLecguqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658618399779\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658618399779&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618399779\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKP4geqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.427Z\",\n \"updated\": \"2021-05-10T14:56:58.427Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.427Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKP4geqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658618420906\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658618420906&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618420906\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKqdg+qvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.447Z\",\n \"updated\": \"2021-05-10T14:56:58.447Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.447Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKqdg+qvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658618475489\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658618475489&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618475489\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"COHHhuqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.495Z\",\n \"updated\": \"2021-05-10T14:56:58.495Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.495Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COHHhuqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658618505530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658618505530&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618505530\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLqyiOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.525Z\",\n \"updated\": \"2021-05-10T14:56:58.525Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.525Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLqyiOqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658618517019\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658618517019&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618517019\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CJuMieqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:58.548Z\",\n - \ \"updated\": \"2021-05-10T14:56:58.548Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:58.548Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJuMieqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658618533281\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658618533281&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618533281\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CKGLiuqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:58.560Z\",\n - \ \"updated\": \"2021-05-10T14:56:58.560Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:58.560Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKGLiuqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658618420906\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658618420906&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618420906\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKqdg+qvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.447Z\",\n \"updated\": \"2021-05-10T14:56:58.447Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.447Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658618404407\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658618404407&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618404407\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLecguqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.434Z\",\n \"updated\": \"2021-05-10T14:56:58.434Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.434Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658618533281\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658618533281&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618533281\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKGLiuqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.560Z\",\n \"updated\": \"2021-05-10T14:56:58.560Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.560Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658618517019\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658618517019&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618517019\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJuMieqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.548Z\",\n \"updated\": \"2021-05-10T14:56:58.548Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.548Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '3445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested/ -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested/rewriteTo/b/gcsfs-testing/o/dest - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/nested\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/nested\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '245' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested/rewriteTo/b/gcsfs-testing/o/dest -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2/rewriteTo/b/gcsfs-testing/o/dest%2Fnested2 - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/nested/nested2\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/nested/nested2\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '261' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2/rewriteTo/b/gcsfs-testing/o/dest%2Fnested2 -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1/rewriteTo/b/gcsfs-testing/o/dest%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"6\",\n \"objectSize\": \"6\",\n \"done\": true,\n \"resource\": {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/dest/file1/1620658618765026\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile1?generation=1620658618765026&alt=media\",\n - \ \"name\": \"dest/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618765026\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"COKdmOqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:58.784Z\",\n - \ \"updated\": \"2021-05-10T14:56:58.784Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:58.784Z\",\n \"owner\": {\n \"entity\": \"user-mdurant@anaconda.com\"\n - \ }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '970' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1/rewriteTo/b/gcsfs-testing/o/dest%2Ffile1 -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2/rewriteTo/b/gcsfs-testing/o/dest%2Fnested2%2Ffile2 - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"5\",\n \"objectSize\": \"5\",\n \"done\": true,\n \"resource\": {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/dest/nested2/file2/1620658618770640\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile2?generation=1620658618770640&alt=media\",\n - \ \"name\": \"dest/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618770640\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNDJmOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.798Z\",\n \"updated\": \"2021-05-10T14:56:58.798Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.798Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1006' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2/rewriteTo/b/gcsfs-testing/o/dest%2Fnested2%2Ffile2 -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1/rewriteTo/b/gcsfs-testing/o/dest%2Fnested2%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"6\",\n \"objectSize\": \"6\",\n \"done\": true,\n \"resource\": {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/dest/nested2/file1/1620658618771069\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile1?generation=1620658618771069&alt=media\",\n - \ \"name\": \"dest/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618771069\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CP3MmOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.804Z\",\n \"updated\": \"2021-05-10T14:56:58.804Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.804Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1006' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1/rewriteTo/b/gcsfs-testing/o/dest%2Fnested2%2Ffile1 -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2/rewriteTo/b/gcsfs-testing/o/dest%2Ffile2 - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"5\",\n \"objectSize\": \"5\",\n \"done\": true,\n \"resource\": {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/dest/file2/1620658618776877\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile2?generation=1620658618776877&alt=media\",\n - \ \"name\": \"dest/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618776877\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CK36mOqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:58.808Z\",\n - \ \"updated\": \"2021-05-10T14:56:58.808Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:58.808Z\",\n \"owner\": {\n \"entity\": \"user-mdurant@anaconda.com\"\n - \ }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '970' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2/rewriteTo/b/gcsfs-testing/o/dest%2Ffile2 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=dest%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"prefixes\": [\n \"dest/nested2/\"\n - \ ],\n \"items\": [\n {\n \"kind\": \"storage#object\",\n \"id\": - \"gcsfs-testing/dest/file1/1620658618765026\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile1?generation=1620658618765026&alt=media\",\n - \ \"name\": \"dest/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618765026\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": - \"NT3Yvg==\",\n \"etag\": \"COKdmOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.784Z\",\n \"updated\": \"2021-05-10T14:56:58.784Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.784Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest/file2/1620658618776877\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile2?generation=1620658618776877&alt=media\",\n - \ \"name\": \"dest/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618776877\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": - \"MaqBTg==\",\n \"etag\": \"CK36mOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.808Z\",\n \"updated\": \"2021-05-10T14:56:58.808Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.808Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1736' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=dest/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile1?alt=media - response: - body: - string: 'hello - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '6' - Content-Type: - - application/octet-stream - Etag: - - COKdmOqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658618765026' - X-Goog-Hash: - - crc32c=NT3Yvg==,md5=sZRqySSS0jR8YjW00mERhA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile1?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media - response: - body: - string: 'hello - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '6' - Content-Type: - - application/octet-stream - Etag: - - CKqdg+qvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658618420906' - X-Goog-Hash: - - crc32c=NT3Yvg==,md5=sZRqySSS0jR8YjW00mERhA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile2?alt=media - response: - body: - string: world - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '5' - Content-Type: - - application/octet-stream - Etag: - - CK36mOqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658618776877' - X-Goog-Hash: - - crc32c=MaqBTg==,md5=fXkwN6B2AYZXSwKC8vQ15w== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile2?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?alt=media - response: - body: - string: world - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '5' - Content-Type: - - application/octet-stream - Etag: - - CLecguqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658618404407' - X-Goog-Hash: - - crc32c=MaqBTg==,md5=fXkwN6B2AYZXSwKC8vQ15w== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658618399779\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658618399779&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618399779\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKP4geqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.427Z\",\n \"updated\": \"2021-05-10T14:56:58.427Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.427Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658618505530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658618505530&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618505530\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLqyiOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.525Z\",\n \"updated\": \"2021-05-10T14:56:58.525Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.525Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658618475489\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658618475489&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618475489\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"COHHhuqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.495Z\",\n \"updated\": \"2021-05-10T14:56:58.495Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.495Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest/file1/1620658618765026\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile1?generation=1620658618765026&alt=media\",\n - \ \"name\": \"dest/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618765026\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": - \"NT3Yvg==\",\n \"etag\": \"COKdmOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.784Z\",\n \"updated\": \"2021-05-10T14:56:58.784Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.784Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest/file2/1620658618776877\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Ffile2?generation=1620658618776877&alt=media\",\n - \ \"name\": \"dest/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658618776877\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": - \"MaqBTg==\",\n \"etag\": \"CK36mOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.808Z\",\n \"updated\": \"2021-05-10T14:56:58.808Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.808Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest/nested2/file1/1620658618771069\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile1?generation=1620658618771069&alt=media\",\n - \ \"name\": \"dest/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618771069\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CP3MmOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.804Z\",\n \"updated\": \"2021-05-10T14:56:58.804Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.804Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/dest/nested2/file2/1620658618770640\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile2?generation=1620658618770640&alt=media\",\n - \ \"name\": \"dest/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618770640\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNDJmOqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.798Z\",\n \"updated\": \"2021-05-10T14:56:58.798Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.798Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658618420906\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658618420906&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618420906\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKqdg+qvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.447Z\",\n \"updated\": \"2021-05-10T14:56:58.447Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.447Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658618404407\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658618404407&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618404407\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLecguqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.434Z\",\n \"updated\": \"2021-05-10T14:56:58.434Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.434Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658618533281\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658618533281&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618533281\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKGLiuqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.560Z\",\n \"updated\": \"2021-05-10T14:56:58.560Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.560Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658618517019\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658618517019&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618517019\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJuMieqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.548Z\",\n \"updated\": \"2021-05-10T14:56:58.548Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.548Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658618300571\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658618300571&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618300571\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJvx++mvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.320Z\",\n \"updated\": \"2021-05-10T14:56:58.320Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.320Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658618401465\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658618401465&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658618401465\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CLmFguqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:58.433Z\",\n \"updated\": \"2021-05-10T14:56:58.433Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:58.433Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '11047' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/dest%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:59 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:59 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_G_HjImFQE3G6ClowkaMuWY8P6vwWDUXk - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_current.yaml b/gcsfs/tests/recordings/test_current.yaml deleted file mode 100644 index bb866616..00000000 --- a/gcsfs/tests/recordings/test_current.yaml +++ /dev/null @@ -1,151 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABNKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_du.yaml b/gcsfs/tests/recordings/test_du.yaml deleted file mode 100644 index a4797b1b..00000000 --- a/gcsfs/tests/recordings/test_du.yaml +++ /dev/null @@ -1,1136 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAJ9JmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658592081642\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658592081642&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592081642\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COrNu92vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:32.101Z\",\n - \ \"updated\": \"2021-05-10T14:56:32.101Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:32.101Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COrNu92vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658592143936\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658592143936&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658592143936\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMC0v92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.164Z\",\n \"updated\": \"2021-05-10T14:56:32.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.164Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMC0v92vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658592148999\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658592148999&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592148999\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CIfcv92vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:32.178Z\",\n - \ \"updated\": \"2021-05-10T14:56:32.178Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:32.178Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIfcv92vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658592154572\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658592154572&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592154572\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CMyHwN2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:32.187Z\",\n - \ \"updated\": \"2021-05-10T14:56:32.187Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:32.187Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMyHwN2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658592155513\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658592155513&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658592155513\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPmOwN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.188Z\",\n \"updated\": \"2021-05-10T14:56:32.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.188Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPmOwN2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658592158825\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658592158825&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592158825\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"COmowN2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:32.189Z\",\n - \ \"updated\": \"2021-05-10T14:56:32.189Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:32.189Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COmowN2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658592244253\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658592244253&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658592244253\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJ3Exd2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.263Z\",\n \"updated\": \"2021-05-10T14:56:32.263Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.263Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ3Exd2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658592286367\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658592286367&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658592286367\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJ+NyN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.306Z\",\n \"updated\": \"2021-05-10T14:56:32.306Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.306Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ+NyN2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658593168551\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658593168551&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658593168551\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKf5/d2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:33.188Z\",\n \"updated\": \"2021-05-10T14:56:33.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:33.188Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKf5/d2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658592286367\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658592286367&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592286367\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJ+NyN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.306Z\",\n \"updated\": \"2021-05-10T14:56:32.306Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.306Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658592143936\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658592143936&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592143936\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMC0v92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.164Z\",\n \"updated\": \"2021-05-10T14:56:32.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.164Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658593168551\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658593168551&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658593168551\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKf5/d2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:33.188Z\",\n \"updated\": \"2021-05-10T14:56:33.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:33.188Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658592155513\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658592155513&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592155513\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPmOwN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.188Z\",\n \"updated\": \"2021-05-10T14:56:32.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.188Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658592244253\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658592244253&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592244253\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJ3Exd2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.263Z\",\n \"updated\": \"2021-05-10T14:56:32.263Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.263Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658592158825\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658592158825&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592158825\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"COmowN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.189Z\",\n \"updated\": \"2021-05-10T14:56:32.189Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.189Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658592154572\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658592154572&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592154572\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CMyHwN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.187Z\",\n \"updated\": \"2021-05-10T14:56:32.187Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.187Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658592081642\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658592081642&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592081642\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COrNu92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.101Z\",\n \"updated\": \"2021-05-10T14:56:32.101Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.101Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658592148999\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658592148999&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592148999\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIfcv92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.178Z\",\n \"updated\": \"2021-05-10T14:56:32.178Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.178Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658592081642\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658592081642&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592081642\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COrNu92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.101Z\",\n \"updated\": \"2021-05-10T14:56:32.101Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.101Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658592148999\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658592148999&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592148999\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIfcv92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.178Z\",\n \"updated\": \"2021-05-10T14:56:32.178Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.178Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658592286367\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658592286367&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592286367\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJ+NyN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.306Z\",\n \"updated\": \"2021-05-10T14:56:32.306Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.306Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658592143936\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658592143936&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592143936\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMC0v92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.164Z\",\n \"updated\": \"2021-05-10T14:56:32.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.164Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658593168551\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658593168551&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658593168551\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKf5/d2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:33.188Z\",\n \"updated\": \"2021-05-10T14:56:33.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:33.188Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658592155513\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658592155513&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592155513\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPmOwN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.188Z\",\n \"updated\": \"2021-05-10T14:56:32.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.188Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658592244253\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658592244253&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592244253\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJ3Exd2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.263Z\",\n \"updated\": \"2021-05-10T14:56:32.263Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.263Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658592158825\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658592158825&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592158825\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"COmowN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.189Z\",\n \"updated\": \"2021-05-10T14:56:32.189Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.189Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658592154572\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658592154572&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592154572\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CMyHwN2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.187Z\",\n \"updated\": \"2021-05-10T14:56:32.187Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.187Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658592081642\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658592081642&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592081642\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COrNu92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.101Z\",\n \"updated\": \"2021-05-10T14:56:32.101Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.101Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658592148999\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658592148999&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658592148999\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIfcv92vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:32.178Z\",\n \"updated\": \"2021-05-10T14:56:32.178Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:32.178Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:33 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_z4t2QDy5n2Me92R0lJIwaVFZ2iWQs7ZH - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_errors.yaml b/gcsfs/tests/recordings/test_errors.yaml deleted file mode 100644 index 860cab33..00000000 --- a/gcsfs/tests/recordings/test_errors.yaml +++ /dev/null @@ -1,498 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAOVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fshfoshf - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/shfoshf\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/shfoshf\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '265' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fshfoshf -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=tmp%2Ftest%2Fshfoshf%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=tmp/test/shfoshf/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fshfoshf - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/shfoshf\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/shfoshf\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '265' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fshfoshf -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fshfoshf%2Fx/rewriteTo/b/tmp/o/test%2Fshfoshf%2Fy - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/shfoshf/x\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/shfoshf/x\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '269' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fshfoshf%2Fx/rewriteTo/b/tmp/o/test%2Fshfoshf%2Fy -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/x/o/?delimiter=%2F - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"Not Found\",\n - \ \"errors\": [\n {\n \"message\": \"Not Found\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '193' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/x/o/?delimiter=/ -- request: - body: null - headers: {} - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/unknown - response: - body: - string: "{\n \"error\": {\n \"code\": 403,\n \"message\": \"mdurant@anaconda.com - does not have storage.buckets.delete access to the Google Cloud project.\",\n - \ \"errors\": [\n {\n \"message\": \"mdurant@anaconda.com does - not have storage.buckets.delete access to the Google Cloud project.\",\n \"domain\": - \"global\",\n \"reason\": \"forbidden\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '362' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 403 - message: Forbidden - url: https://storage.googleapis.com/storage/v1/b/unknown -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uzl5aZTazz_CYiYIeFNQ9LR6JG9BZzi0WBFCxk6AGPXl6DXJ-_CUuKC4nq8dooI-5wgM0dKoZgx2iYgBmbHwhzb7L6R-w - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uzl5aZTazz_CYiYIeFNQ9LR6JG9BZzi0WBFCxk6AGPXl6DXJ-_CUuKC4nq8dooI-5wgM0dKoZgx2iYgBmbHwhzb7L6R-w - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658663780203\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658663780203&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658663780203\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COve0/+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:43.800Z\",\n \"updated\": \"2021-05-10T14:57:43.800Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:43.800Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COve0/+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uzl5aZTazz_CYiYIeFNQ9LR6JG9BZzi0WBFCxk6AGPXl6DXJ-_CUuKC4nq8dooI-5wgM0dKoZgx2iYgBmbHwhzb7L6R-w -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658663780203\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658663780203&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658663780203\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COve0/+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:43.800Z\",\n \"updated\": \"2021-05-10T14:57:43.800Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:43.800Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COve0/+vv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658663780203\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658663780203&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658663780203\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"COve0/+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:43.800Z\",\n \"updated\": \"2021-05-10T14:57:43.800Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:43.800Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '844' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_huur6CD6XefdG01tOB-K1KDZEUkgU3fL\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:44 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_huur6CD6XefdG01tOB-K1KDZEUkgU3fL--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_huur6CD6XefdG01tOB-K1KDZEUkgU3fL - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_file_access.yaml b/gcsfs/tests/recordings/test_file_access.yaml deleted file mode 100644 index acfa9208..00000000 --- a/gcsfs/tests/recordings/test_file_access.yaml +++ /dev/null @@ -1,563 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAJtJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1Ujl4dUW5SM3fSwRZqKbL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg9b1v+I4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyzysOdrkargWeG7qA2p062YIGbzEZpvbyNZCTyyq4v67gG8VS_QAjjso17sPYPS6qbd86zvzxFs5UXj6a_FgdEACzsvw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: 'hello - - ' - headers: - Content-Length: - - '6' - Content-Range: - - bytes 0-5/6 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyzysOdrkargWeG7qA2p062YIGbzEZpvbyNZCTyyq4v67gG8VS_QAjjso17sPYPS6qbd86zvzxFs5UXj6a_FgdEACzsvw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658588313530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658588313530\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLrP1duvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:28.333Z\",\n \"updated\": \"2021-05-10T14:56:28.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:28.333Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLrP1duvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyzysOdrkargWeG7qA2p062YIGbzEZpvbyNZCTyyq4v67gG8VS_QAjjso17sPYPS6qbd86zvzxFs5UXj6a_FgdEACzsvw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media - response: - body: - string: 'hello - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '6' - Content-Type: - - application/octet-stream - Etag: - - CLrP1duvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658588313530' - X-Goog-Hash: - - crc32c=NT3Yvg==,md5=sZRqySSS0jR8YjW00mERhA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658588313530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658588313530\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLrP1duvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:28.333Z\",\n \"updated\": \"2021-05-10T14:56:28.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:28.333Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLrP1duvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 -- request: - body: null - headers: - Range: - - bytes=0-5 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media&generation=1620658588313530 - response: - body: - string: 'hello - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '6' - Content-Range: - - bytes 0-5/6 - Content-Type: - - application/octet-stream - Etag: - - CLrP1duvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658588313530' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658588313530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658588313530\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLrP1duvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:28.333Z\",\n \"updated\": \"2021-05-10T14:56:28.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:28.333Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLrP1duvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 -- request: - body: null - headers: - Range: - - bytes=3-5 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media&generation=1620658588313530 - response: - body: - string: 'lo - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Range: - - bytes 3-5/6 - Content-Type: - - application/octet-stream - Etag: - - CLrP1duvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658588313530' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658588313530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658588313530\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLrP1duvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:28.333Z\",\n \"updated\": \"2021-05-10T14:56:28.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:28.333Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLrP1duvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 -- request: - body: null - headers: - Range: - - bytes=0-5 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media&generation=1620658588313530 - response: - body: - string: 'hello - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '6' - Content-Range: - - bytes 0-5/6 - Content-Type: - - application/octet-stream - Etag: - - CLrP1duvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658588313530' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658588313530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658588313530&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658588313530\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLrP1duvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:28.333Z\",\n \"updated\": \"2021-05-10T14:56:28.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:28.333Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '880' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_7-1-tsIva0ASeiwTXuZQI8hFEGxgrrKU\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:29 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_7-1-tsIva0ASeiwTXuZQI8hFEGxgrrKU--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_7-1-tsIva0ASeiwTXuZQI8hFEGxgrrKU - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_file_info.yaml b/gcsfs/tests/recordings/test_file_info.yaml deleted file mode 100644 index 1d262ea7..00000000 --- a/gcsfs/tests/recordings/test_file_info.yaml +++ /dev/null @@ -1,329 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAJ1JmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwpLUKSu2y7F8275SGwcRzd8d729DiCcXcBHtBckx--Mk-gYnCUrd7G4QcPNHPRFTXnV1e3WY__yYPJxau1waZh5NFZAA - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: 'hello - - ' - headers: - Content-Length: - - '6' - Content-Range: - - bytes 0-5/6 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwpLUKSu2y7F8275SGwcRzd8d729DiCcXcBHtBckx--Mk-gYnCUrd7G4QcPNHPRFTXnV1e3WY__yYPJxau1waZh5NFZAA - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658590548180\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658590548180&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658590548180\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNSB3tyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:30.567Z\",\n \"updated\": \"2021-05-10T14:56:30.567Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:30.567Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNSB3tyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwpLUKSu2y7F8275SGwcRzd8d729DiCcXcBHtBckx--Mk-gYnCUrd7G4QcPNHPRFTXnV1e3WY__yYPJxau1waZh5NFZAA -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658590548180\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658590548180&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658590548180\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNSB3tyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:30.567Z\",\n \"updated\": \"2021-05-10T14:56:30.567Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:30.567Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '880' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658590548180\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658590548180&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658590548180\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNSB3tyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:30.567Z\",\n \"updated\": \"2021-05-10T14:56:30.567Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:30.567Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '880' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_dn9qoelJ4kB7nb-uWuA687seGnG9ICRC\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:31 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dn9qoelJ4kB7nb-uWuA687seGnG9ICRC--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_dn9qoelJ4kB7nb-uWuA687seGnG9ICRC - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_find_with_prefix_partial_cache.yaml b/gcsfs/tests/recordings/test_find_with_prefix_partial_cache.yaml deleted file mode 100644 index 47d3a6f1..00000000 --- a/gcsfs/tests/recordings/test_find_with_prefix_partial_cache.yaml +++ /dev/null @@ -1,721 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAEf53WAC/4WPsQ7DIBBDfyVibmHP2B+JTnBJUIFD3CGoqvx7Qzt1ymTZsuTntwJrkXkRemJS - 86R67+o2KbaUcfhTknfTLpJ5Nqa1pjeiLSBkz9pSNFBlN5Wx+LSSxgg+XNbPVapJWBcc/rJvA1V3 - zwFkpRIH4Bd4kdeP8oFQsIzcu/8vxwfXyTDP4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdury3lSutthOyZrR8PKFh22NKpT8nTRJ5b3ZucfN57HtZkqOGuM0XKB5CppN3rLoIhsO3dDdXbsc7aUvjU43qY - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdury3lSutthOyZrR8PKFh22NKpT8nTRJ5b3ZucfN57HtZkqOGuM0XKB5CppN3rLoIhsO3dDdXbsc7aUvjU43qY - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_1/1625160008375450\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1?generation=1625160008375450&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160008375450\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": \"AAAAAA==\",\n - \ \"etag\": \"CJq5guiwwvECEAE=\",\n \"timeCreated\": \"2021-07-01T17:20:08.414Z\",\n - \ \"updated\": \"2021-07-01T17:20:08.414Z\",\n \"timeStorageClassUpdated\": - \"2021-07-01T17:20:08.414Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '818' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJq5guiwwvECEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdury3lSutthOyZrR8PKFh22NKpT8nTRJ5b3ZucfN57HtZkqOGuM0XKB5CppN3rLoIhsO3dDdXbsc7aUvjU43qY -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdvhcTvmRllx4SGeGPt9VnZKbeX-br57Jj8X1rmiARyW46UVOESsCFckdxFH4AziFJvm1thmrOQ87bqYiKseiLc - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdvhcTvmRllx4SGeGPt9VnZKbeX-br57Jj8X1rmiARyW46UVOESsCFckdxFH4AziFJvm1thmrOQ87bqYiKseiLc - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_2/1625160009040094\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2?generation=1625160009040094&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160009040094\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": \"AAAAAA==\",\n - \ \"etag\": \"CN6Bq+iwwvECEAE=\",\n \"timeCreated\": \"2021-07-01T17:20:09.063Z\",\n - \ \"updated\": \"2021-07-01T17:20:09.063Z\",\n \"timeStorageClassUpdated\": - \"2021-07-01T17:20:09.063Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '818' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN6Bq+iwwvECEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdvhcTvmRllx4SGeGPt9VnZKbeX-br57Jj8X1rmiARyW46UVOESsCFckdxFH4AziFJvm1thmrOQ87bqYiKseiLc -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test_find_with_prefix%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_1/1625160008375450\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1?generation=1625160008375450&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160008375450\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJq5guiwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:08.414Z\",\n \"updated\": \"2021-07-01T17:20:08.414Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:08.414Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_2/1625160009040094\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2?generation=1625160009040094&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160009040094\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CN6Bq+iwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:09.063Z\",\n \"updated\": \"2021-07-01T17:20:09.063Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:09.063Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1839' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test_find_with_prefix/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Fnon_existent_ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/non_existent_ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Ftest_ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_1/1625160008375450\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1?generation=1625160008375450&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160008375450\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJq5guiwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:08.414Z\",\n \"updated\": \"2021-07-01T17:20:08.414Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:08.414Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_2/1625160009040094\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2?generation=1625160009040094&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160009040094\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CN6Bq+iwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:09.063Z\",\n \"updated\": \"2021-07-01T17:20:09.063Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:09.063Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1839' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/test_ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Ftest_1%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/test_1/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Fnon_existent%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/non_existent/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Fnon_existent%2Fmore_non_existent - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/non_existent/more_non_existent -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Fnon_existent_ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/non_existent_ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Ftest_ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_1/1625160008375450\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1?generation=1625160008375450&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160008375450\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJq5guiwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:08.414Z\",\n \"updated\": \"2021-07-01T17:20:08.414Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:08.414Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_2/1625160009040094\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2?generation=1625160009040094&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160009040094\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CN6Bq+iwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:09.063Z\",\n \"updated\": \"2021-07-01T17:20:09.063Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:09.063Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1839' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/test_ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Ftest_1%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/test_1/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Fnon_existent%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/non_existent/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix%2Fnon_existent%2Fmore_non_existent - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test_find_with_prefix/non_existent/more_non_existent -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_1/1625160008375450\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1?generation=1625160008375450&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160008375450\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJq5guiwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:08.414Z\",\n \"updated\": \"2021-07-01T17:20:08.414Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:08.414Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test_find_with_prefix/test_2/1625160009040094\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2?generation=1625160009040094&alt=media\",\n - \ \"name\": \"test_find_with_prefix/test_2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1625160009040094\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CN6Bq+iwwvECEAE=\",\n \"timeCreated\": - \"2021-07-01T17:20:09.063Z\",\n \"updated\": \"2021-07-01T17:20:09.063Z\",\n - \ \"timeStorageClassUpdated\": \"2021-07-01T17:20:09.063Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1839' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test_find_with_prefix%2Ftest_2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_QRBGXrFH4ZFSy7ocOuRBNGDspf274DEi\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Thu, 01 Jul 2021 17:20:10 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QRBGXrFH4ZFSy7ocOuRBNGDspf274DEi\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Thu, 01 Jul 2021 - 17:20:10 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QRBGXrFH4ZFSy7ocOuRBNGDspf274DEi--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_QRBGXrFH4ZFSy7ocOuRBNGDspf274DEi - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_flush.yaml b/gcsfs/tests/recordings/test_flush.yaml deleted file mode 100644 index cd721ab5..00000000 --- a/gcsfs/tests/recordings/test_flush.yaml +++ /dev/null @@ -1,545 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAPBJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyPl0EwpKCFKeUgMdSb-usnWssX-xmYkxnyXmegKn8UqJtrJH29uFTfV9c7WuHubjIy-p_AqC0O_L4SmgtX_3Q2mdf26Q - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyPl0EwpKCFKeUgMdSb-usnWssX-xmYkxnyXmegKn8UqJtrJH29uFTfV9c7WuHubjIy-p_AqC0O_L4SmgtX_3Q2mdf26Q - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658673285203\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658673285203&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658673285203\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CNPwl4Swv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:53.305Z\",\n \"updated\": \"2021-05-10T14:57:53.305Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:53.305Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNPwl4Swv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyPl0EwpKCFKeUgMdSb-usnWssX-xmYkxnyXmegKn8UqJtrJH29uFTfV9c7WuHubjIy-p_AqC0O_L4SmgtX_3Q2mdf26Q -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658673285203\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658673285203&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658673285203\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CNPwl4Swv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:53.305Z\",\n \"updated\": \"2021-05-10T14:57:53.305Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:53.305Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNPwl4Swv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/b\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/b\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '253' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=tmp%2Ftest%2Fb%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=tmp/test/b/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/b\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/b\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '253' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uxys5iY5Gk_1Y3Au2_EABsbM6qh6gJLj-vAE8G_nhLnO_q2okn0T95PFR_rdfQ80VzUpaQXvrPpWDbIPWDgkXKnlGgI0w - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: abc - headers: - Content-Length: - - '3' - Content-Range: - - bytes 0-2/3 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uxys5iY5Gk_1Y3Au2_EABsbM6qh6gJLj-vAE8G_nhLnO_q2okn0T95PFR_rdfQ80VzUpaQXvrPpWDbIPWDgkXKnlGgI0w - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658673961857\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658673961857&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658673961857\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"kAFQmDzST7DWlj99KOF/cg==\",\n - \ \"crc32c\": \"Nks/tw==\",\n \"etag\": \"CIGXwYSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:53.981Z\",\n \"updated\": \"2021-05-10T14:57:53.981Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:53.981Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIGXwYSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uxys5iY5Gk_1Y3Au2_EABsbM6qh6gJLj-vAE8G_nhLnO_q2okn0T95PFR_rdfQ80VzUpaQXvrPpWDbIPWDgkXKnlGgI0w -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658673961857\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658673961857&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658673961857\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"kAFQmDzST7DWlj99KOF/cg==\",\n - \ \"crc32c\": \"Nks/tw==\",\n \"etag\": \"CIGXwYSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:53.981Z\",\n \"updated\": \"2021-05-10T14:57:53.981Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:53.981Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIGXwYSwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658673285203\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658673285203&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658673285203\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CNPwl4Swv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:53.305Z\",\n \"updated\": \"2021-05-10T14:57:53.305Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:53.305Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658673961857\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658673961857&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658673961857\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"kAFQmDzST7DWlj99KOF/cg==\",\n \"crc32c\": - \"Nks/tw==\",\n \"etag\": \"CIGXwYSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:53.981Z\",\n \"updated\": \"2021-05-10T14:57:53.981Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:53.981Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1703' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_FuX7swhHnGWPrB-3O9vmxPIiaJ7Yeol8\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:54 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_FuX7swhHnGWPrB-3O9vmxPIiaJ7Yeol8\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_FuX7swhHnGWPrB-3O9vmxPIiaJ7Yeol8--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_FuX7swhHnGWPrB-3O9vmxPIiaJ7Yeol8 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_gcs_glob.yaml b/gcsfs/tests/recordings/test_gcs_glob.yaml deleted file mode 100644 index 6a2f1aaf..00000000 --- a/gcsfs/tests/recordings/test_gcs_glob.yaml +++ /dev/null @@ -1,2120 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAKlJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"updated\": \"2021-05-10T14:56:42.279Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:42.279Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIvmqOKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658602336025\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJm+reKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"updated\": \"2021-05-10T14:56:42.369Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:42.369Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJXdreKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658602345664\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMCJruKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"updated\": \"2021-05-10T14:56:42.460Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:42.460Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COfss+Kvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658602446612\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJSetOKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"updated\": \"2021-05-10T14:56:42.483Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:42.483Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNLItOKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658603358275\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMPw6+Kvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658603371929\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJnb7OKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '3445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '3445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested%2Ffile - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1711' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested/file -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '3445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '3445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=nested -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658602336025\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658602336025&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602336025\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJm+reKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.367Z\",\n \"updated\": \"2021-05-10T14:56:42.367Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.367Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658602345664\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658602345664&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602345664\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMCJruKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.373Z\",\n \"updated\": \"2021-05-10T14:56:42.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658603358275\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658603358275&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603358275\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CMPw6+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.378Z\",\n \"updated\": \"2021-05-10T14:56:43.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658603371929\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658603371929&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658603371929\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJnb7OKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:43.401Z\",\n \"updated\": \"2021-05-10T14:56:43.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:43.401Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658602446612\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658602446612&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602446612\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJSetOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.474Z\",\n \"updated\": \"2021-05-10T14:56:42.474Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.474Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658602452050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658602452050&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602452050\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNLItOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.483Z\",\n \"updated\": \"2021-05-10T14:56:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658602339989\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658602339989&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602339989\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJXdreKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.369Z\",\n \"updated\": \"2021-05-10T14:56:42.369Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.369Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658602259211\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658602259211&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602259211\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIvmqOKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.279Z\",\n \"updated\": \"2021-05-10T14:56:42.279Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.279Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658602440295\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658602440295&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658602440295\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COfss+Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:42.460Z\",\n \"updated\": \"2021-05-10T14:56:42.460Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:42.460Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:44 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:44 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_ATiDt4xrpxnhqf88gjFqPcdpTOlRJ_CE - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_get_put.yaml b/gcsfs/tests/recordings/test_get_put.yaml deleted file mode 100644 index dbe14e18..00000000 --- a/gcsfs/tests/recordings/test_get_put.yaml +++ /dev/null @@ -1,5146 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIANBJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658632385984\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658632385984&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632385984\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CMDL1/Cvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:12.405Z\",\n - \ \"updated\": \"2021-05-10T14:57:12.405Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:12.405Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMDL1/Cvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658632464803\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658632464803&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658632464803\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKOz3PCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.496Z\",\n \"updated\": \"2021-05-10T14:57:12.496Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.496Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKOz3PCvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658632467886\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658632467886&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632467886\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CK7L3PCvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:12.498Z\",\n - \ \"updated\": \"2021-05-10T14:57:12.498Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:12.498Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK7L3PCvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658632474827\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658632474827&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632474827\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CMuB3fCvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:12.501Z\",\n - \ \"updated\": \"2021-05-10T14:57:12.501Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:12.501Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMuB3fCvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658632482854\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658632482854&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658632482854\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKbA3fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.511Z\",\n \"updated\": \"2021-05-10T14:57:12.511Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.511Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKbA3fCvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658632486067\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658632486067&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658632486067\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLPZ3fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.518Z\",\n \"updated\": \"2021-05-10T14:57:12.518Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.518Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLPZ3fCvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658632490576\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658632490576&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658632490576\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CND83fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.520Z\",\n \"updated\": \"2021-05-10T14:57:12.520Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.520Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CND83fCvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658632490670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658632490670&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632490670\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CK793fCvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:12.524Z\",\n - \ \"updated\": \"2021-05-10T14:57:12.524Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:12.524Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK793fCvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658633057572\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658633057572&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658633057572\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKTKgPGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:13.077Z\",\n \"updated\": \"2021-05-10T14:57:13.077Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:13.077Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKTKgPGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658632385984\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658632385984&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632385984\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CMDL1/Cvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:12.405Z\",\n - \ \"updated\": \"2021-05-10T14:57:12.405Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:12.405Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMDL1/Cvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CMDL1/Cvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658632385984' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658633323543\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658633323543&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658633323543\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJfokPGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:13.343Z\",\n \"updated\": \"2021-05-10T14:57:13.343Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:13.343Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJfokPGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658633323543\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658633323543&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658633323543\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJfokPGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:13.343Z\",\n \"updated\": \"2021-05-10T14:57:13.343Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:13.343Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJfokPGvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658633323543\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658633323543&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658633323543\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJfokPGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:13.343Z\",\n \"updated\": \"2021-05-10T14:57:13.343Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:13.343Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJfokPGvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CJfokPGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658633323543' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658632486067\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658632486067&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632486067\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLPZ3fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.518Z\",\n \"updated\": \"2021-05-10T14:57:12.518Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.518Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658632482854\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658632482854&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632482854\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKbA3fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.511Z\",\n \"updated\": \"2021-05-10T14:57:12.511Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.511Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658633057572\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658633057572&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658633057572\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKTKgPGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:13.077Z\",\n \"updated\": \"2021-05-10T14:57:13.077Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:13.077Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658632490576\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658632490576&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632490576\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CND83fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.520Z\",\n \"updated\": \"2021-05-10T14:57:12.520Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.520Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658632464803\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658632464803&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632464803\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKOz3PCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.496Z\",\n \"updated\": \"2021-05-10T14:57:12.496Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.496Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658632467886\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658632467886&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632467886\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CK7L3PCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.498Z\",\n \"updated\": \"2021-05-10T14:57:12.498Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.498Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658632490670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658632490670&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632490670\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CK793fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.524Z\",\n \"updated\": \"2021-05-10T14:57:12.524Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.524Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658633323543\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658633323543&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658633323543\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": - \"6wJAgQ==\",\n \"etag\": \"CJfokPGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:13.343Z\",\n \"updated\": \"2021-05-10T14:57:13.343Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:13.343Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658632385984\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658632385984&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632385984\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CMDL1/Cvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.405Z\",\n \"updated\": \"2021-05-10T14:57:12.405Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.405Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658632474827\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658632474827&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658632474827\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMuB3fCvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:12.501Z\",\n \"updated\": \"2021-05-10T14:57:12.501Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:12.501Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8480' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:13 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:13 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:13 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:13 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:13 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:13 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:13 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:13 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:14 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:14 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_AYSbrvT-Jrkh0C9y11yPhkij4xp3eS60 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIANBJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658635180119\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658635180119&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635180119\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CNeQgvKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:15.199Z\",\n - \ \"updated\": \"2021-05-10T14:57:15.199Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:15.199Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNeQgvKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658635237583\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658635237583&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635237583\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CM/RhfKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:15.269Z\",\n - \ \"updated\": \"2021-05-10T14:57:15.269Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:15.269Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM/RhfKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658635263641\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658635263641&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658635263641\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CJmdh/Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.284Z\",\n \"updated\": \"2021-05-10T14:57:15.284Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.284Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJmdh/Kvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658635276199\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658635276199&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658635276199\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKf/h/Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.307Z\",\n \"updated\": \"2021-05-10T14:57:15.307Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.307Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKf/h/Kvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658635278836\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658635278836&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658635278836\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CPSTiPKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.309Z\",\n \"updated\": \"2021-05-10T14:57:15.309Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.309Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPSTiPKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658635300807\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658635300807&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635300807\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CMe/ifKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:15.326Z\",\n - \ \"updated\": \"2021-05-10T14:57:15.326Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:15.326Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMe/ifKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658635320594\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658635320594&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635320594\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CJLaivKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:15.344Z\",\n - \ \"updated\": \"2021-05-10T14:57:15.344Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:15.344Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJLaivKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658635430663\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658635430663&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658635430663\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIe2kfKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.450Z\",\n \"updated\": \"2021-05-10T14:57:15.450Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.450Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIe2kfKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658635857286\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658635857286&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658635857286\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CIa7q/Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.876Z\",\n \"updated\": \"2021-05-10T14:57:15.876Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.876Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIa7q/Kvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658635180119\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658635180119&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635180119\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CNeQgvKvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:15.199Z\",\n - \ \"updated\": \"2021-05-10T14:57:15.199Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:15.199Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNeQgvKvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CNeQgvKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658635180119' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658636144511\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658636144511&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658636144511\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP/+vPKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:16.164Z\",\n \"updated\": \"2021-05-10T14:57:16.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:16.164Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/+vPKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658636144511\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658636144511&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658636144511\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP/+vPKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:16.164Z\",\n \"updated\": \"2021-05-10T14:57:16.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:16.164Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/+vPKvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658636144511\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658636144511&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658636144511\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP/+vPKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:16.164Z\",\n \"updated\": \"2021-05-10T14:57:16.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:16.164Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/+vPKvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CP/+vPKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658636144511' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658635278836\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658635278836&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635278836\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CPSTiPKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.309Z\",\n \"updated\": \"2021-05-10T14:57:15.309Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.309Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658635263641\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658635263641&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635263641\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CJmdh/Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.284Z\",\n \"updated\": \"2021-05-10T14:57:15.284Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.284Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658635857286\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658635857286&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635857286\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CIa7q/Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.876Z\",\n \"updated\": \"2021-05-10T14:57:15.876Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.876Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658635430663\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658635430663&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635430663\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIe2kfKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.450Z\",\n \"updated\": \"2021-05-10T14:57:15.450Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.450Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658635276199\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658635276199&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635276199\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKf/h/Kvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.307Z\",\n \"updated\": \"2021-05-10T14:57:15.307Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.307Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658635300807\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658635300807&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635300807\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMe/ifKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.326Z\",\n \"updated\": \"2021-05-10T14:57:15.326Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.326Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658635320594\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658635320594&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635320594\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJLaivKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.344Z\",\n \"updated\": \"2021-05-10T14:57:15.344Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.344Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658636144511\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658636144511&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658636144511\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": - \"6wJAgQ==\",\n \"etag\": \"CP/+vPKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:16.164Z\",\n \"updated\": \"2021-05-10T14:57:16.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:16.164Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658635180119\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658635180119&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635180119\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNeQgvKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.199Z\",\n \"updated\": \"2021-05-10T14:57:15.199Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.199Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658635237583\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658635237583&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658635237583\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CM/RhfKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:15.269Z\",\n \"updated\": \"2021-05-10T14:57:15.269Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:15.269Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8480' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:16 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_V9ug9_m17c8Kw53IDGYwRFv6ENr2WSfj - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIANBJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658637898150\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658637898150&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658637898150\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CKaDqPOvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:17.917Z\",\n - \ \"updated\": \"2021-05-10T14:57:17.917Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:17.917Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKaDqPOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658637972979\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658637972979&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658637972979\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CPPLrPOvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:18.004Z\",\n - \ \"updated\": \"2021-05-10T14:57:18.004Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:18.004Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPPLrPOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658637976491\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658637976491&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658637976491\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKvnrPOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.006Z\",\n \"updated\": \"2021-05-10T14:57:18.006Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.006Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKvnrPOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658637998429\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658637998429&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658637998429\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CN2SrvOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.019Z\",\n \"updated\": \"2021-05-10T14:57:18.019Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.019Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN2SrvOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658638007563\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658638007563&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658638007563\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CIvarvOvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:18.032Z\",\n - \ \"updated\": \"2021-05-10T14:57:18.032Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:18.032Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIvarvOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658638157691\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658638157691&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658638157691\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPvut/Ovv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.177Z\",\n \"updated\": \"2021-05-10T14:57:18.177Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.177Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPvut/Ovv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658638170181\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658638170181&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658638170181\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMXQuPOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.201Z\",\n \"updated\": \"2021-05-10T14:57:18.201Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.201Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMXQuPOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658638581030\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658638581030&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658638581030\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKba0fOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.601Z\",\n \"updated\": \"2021-05-10T14:57:18.601Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.601Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKba0fOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658639046895\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658639046895&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658639046895\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CO+R7vOvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:19.067Z\",\n - \ \"updated\": \"2021-05-10T14:57:19.067Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:19.067Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO+R7vOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658637898150\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658637898150&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658637898150\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CKaDqPOvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:17.917Z\",\n - \ \"updated\": \"2021-05-10T14:57:17.917Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:17.917Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKaDqPOvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CKaDqPOvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658637898150' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658639328220\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658639328220&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658639328220\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNyn//Ovv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:19.347Z\",\n \"updated\": \"2021-05-10T14:57:19.347Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:19.347Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNyn//Ovv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658639328220\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658639328220&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658639328220\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNyn//Ovv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:19.347Z\",\n \"updated\": \"2021-05-10T14:57:19.347Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:19.347Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNyn//Ovv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658639328220\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658639328220&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658639328220\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNyn//Ovv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:19.347Z\",\n \"updated\": \"2021-05-10T14:57:19.347Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:19.347Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNyn//Ovv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CNyn//Ovv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658639328220' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658637976491\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658637976491&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658637976491\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKvnrPOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.006Z\",\n \"updated\": \"2021-05-10T14:57:18.006Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.006Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658637998429\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658637998429&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658637998429\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CN2SrvOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.019Z\",\n \"updated\": \"2021-05-10T14:57:18.019Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.019Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658638581030\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658638581030&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658638581030\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKba0fOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.601Z\",\n \"updated\": \"2021-05-10T14:57:18.601Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.601Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658638170181\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658638170181&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658638170181\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMXQuPOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.201Z\",\n \"updated\": \"2021-05-10T14:57:18.201Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.201Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658638157691\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658638157691&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658638157691\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPvut/Ovv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.177Z\",\n \"updated\": \"2021-05-10T14:57:18.177Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.177Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658639046895\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658639046895&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658639046895\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CO+R7vOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:19.067Z\",\n \"updated\": \"2021-05-10T14:57:19.067Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:19.067Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658638007563\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658638007563&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658638007563\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIvarvOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.032Z\",\n \"updated\": \"2021-05-10T14:57:18.032Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.032Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658639328220\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658639328220&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658639328220\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": - \"6wJAgQ==\",\n \"etag\": \"CNyn//Ovv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:19.347Z\",\n \"updated\": \"2021-05-10T14:57:19.347Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:19.347Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658637898150\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658637898150&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658637898150\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CKaDqPOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:17.917Z\",\n \"updated\": \"2021-05-10T14:57:17.917Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:17.917Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658637972979\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658637972979&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658637972979\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CPPLrPOvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:18.004Z\",\n \"updated\": \"2021-05-10T14:57:18.004Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:18.004Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8480' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:19 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:20 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:20 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_wp2Qa0KalTwuy8UZpH4no8KbqQm9ZoZx - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIANBJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658641300093\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658641300093&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641300093\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CP3U9/Svv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:21.319Z\",\n - \ \"updated\": \"2021-05-10T14:57:21.319Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:21.319Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP3U9/Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658641350422\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658641350422&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641350422\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CJbe+vSvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:21.380Z\",\n - \ \"updated\": \"2021-05-10T14:57:21.380Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:21.380Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJbe+vSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658641355552\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658641355552&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658641355552\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKCG+/Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.384Z\",\n \"updated\": \"2021-05-10T14:57:21.384Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.384Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKCG+/Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658641375351\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658641375351&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658641375351\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CPeg/PSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.398Z\",\n \"updated\": \"2021-05-10T14:57:21.398Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.398Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPeg/PSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658641532384\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658641532384&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658641532384\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CODrhfWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.552Z\",\n \"updated\": \"2021-05-10T14:57:21.552Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.552Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CODrhfWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658641537938\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658641537938&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658641537938\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJKXhvWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.566Z\",\n \"updated\": \"2021-05-10T14:57:21.566Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.566Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJKXhvWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658641955150\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658641955150&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658641955150\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CM7Sn/Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.974Z\",\n \"updated\": \"2021-05-10T14:57:21.974Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.974Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM7Sn/Wvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658642375214\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658642375214&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658642375214\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CK6kufWvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:22.394Z\",\n - \ \"updated\": \"2021-05-10T14:57:22.394Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:22.394Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK6kufWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658642386540\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658642386540&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658642386540\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"COz8ufWvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:22.418Z\",\n - \ \"updated\": \"2021-05-10T14:57:22.418Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:22.418Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COz8ufWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658641300093\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658641300093&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641300093\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CP3U9/Svv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:21.319Z\",\n - \ \"updated\": \"2021-05-10T14:57:21.319Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:21.319Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP3U9/Svv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CP3U9/Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658641300093' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658642648239\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658642648239&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658642648239\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CK/5yfWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:22.667Z\",\n \"updated\": \"2021-05-10T14:57:22.667Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:22.667Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK/5yfWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658642648239\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658642648239&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658642648239\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CK/5yfWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:22.667Z\",\n \"updated\": \"2021-05-10T14:57:22.667Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:22.667Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK/5yfWvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658642648239\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658642648239&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658642648239\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CK/5yfWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:22.667Z\",\n \"updated\": \"2021-05-10T14:57:22.667Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:22.667Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '720' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK/5yfWvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CK/5yfWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658642648239' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658641355552\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658641355552&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641355552\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKCG+/Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.384Z\",\n \"updated\": \"2021-05-10T14:57:21.384Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.384Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658641375351\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658641375351&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641375351\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CPeg/PSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.398Z\",\n \"updated\": \"2021-05-10T14:57:21.398Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.398Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658641955150\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658641955150&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641955150\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CM7Sn/Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.974Z\",\n \"updated\": \"2021-05-10T14:57:21.974Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.974Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658641537938\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658641537938&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641537938\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJKXhvWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.566Z\",\n \"updated\": \"2021-05-10T14:57:21.566Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.566Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658641532384\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658641532384&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641532384\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CODrhfWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.552Z\",\n \"updated\": \"2021-05-10T14:57:21.552Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.552Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658642375214\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658642375214&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658642375214\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CK6kufWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:22.394Z\",\n \"updated\": \"2021-05-10T14:57:22.394Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:22.394Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658642386540\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658642386540&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658642386540\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COz8ufWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:22.418Z\",\n \"updated\": \"2021-05-10T14:57:22.418Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:22.418Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658642648239\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658642648239&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658642648239\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": - \"6wJAgQ==\",\n \"etag\": \"CK/5yfWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:22.667Z\",\n \"updated\": \"2021-05-10T14:57:22.667Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:22.667Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658641300093\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658641300093&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641300093\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP3U9/Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.319Z\",\n \"updated\": \"2021-05-10T14:57:21.319Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.319Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658641350422\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658641350422&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658641350422\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CJbe+vSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:21.380Z\",\n \"updated\": \"2021-05-10T14:57:21.380Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:21.380Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8480' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:23 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_jIYAmzoNMrOg64LlmsTcho-PASbbUGoN - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_get_put_file_in_dir.yaml b/gcsfs/tests/recordings/test_get_put_file_in_dir.yaml deleted file mode 100644 index d0781750..00000000 --- a/gcsfs/tests/recordings/test_get_put_file_in_dir.yaml +++ /dev/null @@ -1,4253 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAONJmWAC/4XPsQ7DIAwE0F9BzC3sGfsjkQVOggoYYSNSVfn3hnbqlPFON7x7a3AOmWehJ2Y9 - Kb3vu74pzY4KjryJFJ6s7b2blWiNCCWwcZQsNNlsY6whL2QwQYjqau4iNX8vEWShmi7np45aFjYV - R1YnKgc/gF/wLK+f8oFQsY4++P8vxwcIgekt4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658654604655\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658654604655&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654604655\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CO/ao/uvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:34.624Z\",\n - \ \"updated\": \"2021-05-10T14:57:34.624Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:34.624Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO/ao/uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658654666370\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658654666370&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654666370\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CIK9p/uvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:34.692Z\",\n - \ \"updated\": \"2021-05-10T14:57:34.692Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:34.692Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIK9p/uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658654682663\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658654682663&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658654682663\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKe8qPuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.709Z\",\n \"updated\": \"2021-05-10T14:57:34.709Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.709Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKe8qPuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658654686948\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658654686948&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654686948\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"COTdqPuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:34.715Z\",\n - \ \"updated\": \"2021-05-10T14:57:34.715Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:34.715Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COTdqPuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658654730008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658654730008&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658654730008\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJiuq/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.749Z\",\n \"updated\": \"2021-05-10T14:57:34.749Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.749Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJiuq/uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658654787527\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658654787527&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654787527\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CMfvrvuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:34.807Z\",\n - \ \"updated\": \"2021-05-10T14:57:34.807Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:34.807Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMfvrvuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658654848638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658654848638&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658654848638\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CP7Msvuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.873Z\",\n \"updated\": \"2021-05-10T14:57:34.873Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.873Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP7Msvuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658654867452\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658654867452&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658654867452\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPzfs/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.891Z\",\n \"updated\": \"2021-05-10T14:57:34.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.891Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPzfs/uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658655091846\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658655091846&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658655091846\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CIa5wfuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:35.111Z\",\n \"updated\": \"2021-05-10T14:57:35.111Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:35.111Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIa5wfuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658654604655\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658654604655&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654604655\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO/ao/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.624Z\",\n \"updated\": \"2021-05-10T14:57:34.624Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.624Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658654666370\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658654666370&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654666370\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIK9p/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.692Z\",\n \"updated\": \"2021-05-10T14:57:34.692Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.692Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658654604655\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658654604655&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654604655\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO/ao/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.624Z\",\n \"updated\": \"2021-05-10T14:57:34.624Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.624Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658654666370\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658654666370&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654666370\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIK9p/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.692Z\",\n \"updated\": \"2021-05-10T14:57:34.692Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.692Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CO/ao/uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658654604655' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CIK9p/uvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658654666370' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658655486670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658655486670&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658655486670\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CM7F2fuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:35.506Z\",\n - \ \"updated\": \"2021-05-10T14:57:35.506Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:35.506Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM7F2fuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.1.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.1.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658655486670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658655486670&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658655486670\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CM7F2fuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:35.506Z\",\n - \ \"updated\": \"2021-05-10T14:57:35.506Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:35.506Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM7F2fuvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658655486670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658655486670&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658655486670\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CM7F2fuvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:35.506Z\",\n - \ \"updated\": \"2021-05-10T14:57:35.506Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:35.506Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM7F2fuvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CM7F2fuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658655486670' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658654730008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658654730008&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654730008\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJiuq/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.749Z\",\n \"updated\": \"2021-05-10T14:57:34.749Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.749Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658654682663\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658654682663&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654682663\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKe8qPuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.709Z\",\n \"updated\": \"2021-05-10T14:57:34.709Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.709Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658655091846\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658655091846&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658655091846\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CIa5wfuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:35.111Z\",\n \"updated\": \"2021-05-10T14:57:35.111Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:35.111Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658654867452\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658654867452&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654867452\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPzfs/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.891Z\",\n \"updated\": \"2021-05-10T14:57:34.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.891Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658654848638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658654848638&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654848638\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CP7Msvuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.873Z\",\n \"updated\": \"2021-05-10T14:57:34.873Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.873Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658654787527\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658654787527&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654787527\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMfvrvuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.807Z\",\n \"updated\": \"2021-05-10T14:57:34.807Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.807Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658654686948\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658654686948&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654686948\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COTdqPuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.715Z\",\n \"updated\": \"2021-05-10T14:57:34.715Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.715Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658655486670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658655486670&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658655486670\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CM7F2fuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:35.506Z\",\n \"updated\": \"2021-05-10T14:57:35.506Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:35.506Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658654604655\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658654604655&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654604655\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO/ao/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.624Z\",\n \"updated\": \"2021-05-10T14:57:34.624Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.624Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658654666370\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658654666370&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658654666370\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIK9p/uvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:34.692Z\",\n \"updated\": \"2021-05-10T14:57:34.692Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:34.692Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8564' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:36 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:36 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_Q809ZdrtzyxyEHUybFJFZ4puU8UHr2AL - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAONJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658657362031\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658657362031&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657362031\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CO+AzPyvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:37.382Z\",\n - \ \"updated\": \"2021-05-10T14:57:37.382Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:37.382Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO+AzPyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658657448958\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658657448958&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657448958\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CP6n0fyvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:37.468Z\",\n - \ \"updated\": \"2021-05-10T14:57:37.468Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:37.468Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP6n0fyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658657451009\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658657451009&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658657451009\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIG40fyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.482Z\",\n \"updated\": \"2021-05-10T14:57:37.482Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.482Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIG40fyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658657456848\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658657456848&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658657456848\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CNDl0fyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.484Z\",\n \"updated\": \"2021-05-10T14:57:37.484Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.484Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNDl0fyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658657557759\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658657557759&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658657557759\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CP/51/yvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.577Z\",\n \"updated\": \"2021-05-10T14:57:37.577Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.577Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/51/yvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658657598071\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658657598071&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658657598071\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPe02vyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.617Z\",\n \"updated\": \"2021-05-10T14:57:37.617Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.617Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPe02vyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658657769403\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658657769403&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657769403\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CLvv5Pyvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:37.789Z\",\n - \ \"updated\": \"2021-05-10T14:57:37.789Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:37.789Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLvv5Pyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658657825077\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658657825077&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658657825077\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLWi6Pyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.844Z\",\n \"updated\": \"2021-05-10T14:57:37.844Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.844Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLWi6Pyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658657938236\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658657938236&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657938236\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CLyW7/yvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:37.958Z\",\n - \ \"updated\": \"2021-05-10T14:57:37.958Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:37.958Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLyW7/yvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658657362031\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658657362031&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657362031\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO+AzPyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.382Z\",\n \"updated\": \"2021-05-10T14:57:37.382Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.382Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658657448958\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658657448958&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657448958\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP6n0fyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.468Z\",\n \"updated\": \"2021-05-10T14:57:37.468Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.468Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658657362031\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658657362031&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657362031\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO+AzPyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.382Z\",\n \"updated\": \"2021-05-10T14:57:37.382Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.382Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658657448958\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658657448958&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657448958\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP6n0fyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.468Z\",\n \"updated\": \"2021-05-10T14:57:37.468Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.468Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CO+AzPyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658657362031' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CP6n0fyvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658657448958' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658658343444\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658658343444&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658658343444\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJT0h/2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:38.372Z\",\n - \ \"updated\": \"2021-05-10T14:57:38.372Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:38.372Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJT0h/2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.1.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.1.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658658343444\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658658343444&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658658343444\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJT0h/2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:38.372Z\",\n - \ \"updated\": \"2021-05-10T14:57:38.372Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:38.372Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJT0h/2vv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658658343444\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658658343444&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658658343444\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJT0h/2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:38.372Z\",\n - \ \"updated\": \"2021-05-10T14:57:38.372Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:38.372Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJT0h/2vv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CJT0h/2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658658343444' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658657451009\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658657451009&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657451009\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIG40fyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.482Z\",\n \"updated\": \"2021-05-10T14:57:37.482Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.482Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658657456848\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658657456848&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657456848\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CNDl0fyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.484Z\",\n \"updated\": \"2021-05-10T14:57:37.484Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.484Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658657825077\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658657825077&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657825077\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLWi6Pyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.844Z\",\n \"updated\": \"2021-05-10T14:57:37.844Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.844Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658657557759\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658657557759&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657557759\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CP/51/yvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.577Z\",\n \"updated\": \"2021-05-10T14:57:37.577Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.577Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658657598071\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658657598071&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657598071\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPe02vyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.617Z\",\n \"updated\": \"2021-05-10T14:57:37.617Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.617Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658657769403\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658657769403&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657769403\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLvv5Pyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.789Z\",\n \"updated\": \"2021-05-10T14:57:37.789Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.789Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658657938236\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658657938236&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657938236\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLyW7/yvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.958Z\",\n \"updated\": \"2021-05-10T14:57:37.958Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.958Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658658343444\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658658343444&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658658343444\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJT0h/2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:38.372Z\",\n \"updated\": \"2021-05-10T14:57:38.372Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:38.372Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658657362031\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658657362031&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657362031\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO+AzPyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.382Z\",\n \"updated\": \"2021-05-10T14:57:37.382Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.382Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658657448958\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658657448958&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658657448958\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CP6n0fyvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:37.468Z\",\n \"updated\": \"2021-05-10T14:57:37.468Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:37.468Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8564' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:38 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:38 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:38 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:38 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:38 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:38 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:38 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:38 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:39 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:39 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_5MsFWxEyXGx3b9nzHnigzrJUIF32N5rR - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAONJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hblIzd9LBFmopst5Y6wh - L2QwQYhD8Cs8y+tn+UCoWEcf/P+X4wMEC22h4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658660090983\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658660090983&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660090983\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COfI8v2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:40.110Z\",\n - \ \"updated\": \"2021-05-10T14:57:40.110Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:40.110Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COfI8v2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658660178879\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658660178879&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660178879\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CL/39/2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:40.198Z\",\n - \ \"updated\": \"2021-05-10T14:57:40.198Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:40.198Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL/39/2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658660178723\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658660178723&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660178723\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CKP29/2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:40.212Z\",\n - \ \"updated\": \"2021-05-10T14:57:40.212Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:40.212Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKP29/2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658660241374\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658660241374&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658660241374\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CN7f+/2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.261Z\",\n \"updated\": \"2021-05-10T14:57:40.261Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.261Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN7f+/2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658660306058\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658660306058&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658660306058\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CIrZ//2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.326Z\",\n \"updated\": \"2021-05-10T14:57:40.326Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.326Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIrZ//2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658660339918\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658660339918&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658660339918\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CM7hgf6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.371Z\",\n \"updated\": \"2021-05-10T14:57:40.371Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.371Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM7hgf6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658660340049\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658660340049&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658660340049\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNHigf6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.373Z\",\n \"updated\": \"2021-05-10T14:57:40.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.373Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNHigf6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658660523846\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658660523846&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660523846\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CMb+jP6vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:40.544Z\",\n - \ \"updated\": \"2021-05-10T14:57:40.544Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:40.544Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMb+jP6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658660580530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658660580530&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658660580530\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLK5kP6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.602Z\",\n \"updated\": \"2021-05-10T14:57:40.602Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.602Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLK5kP6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658660090983\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658660090983&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660090983\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COfI8v2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.110Z\",\n \"updated\": \"2021-05-10T14:57:40.110Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.110Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658660178879\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658660178879&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660178879\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CL/39/2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.198Z\",\n \"updated\": \"2021-05-10T14:57:40.198Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.198Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658660090983\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658660090983&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660090983\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COfI8v2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.110Z\",\n \"updated\": \"2021-05-10T14:57:40.110Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.110Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658660178879\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658660178879&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660178879\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CL/39/2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.198Z\",\n \"updated\": \"2021-05-10T14:57:40.198Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.198Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - COfI8v2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658660090983' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CL/39/2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658660178879' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658661013588\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658661013588&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658661013588\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CNTwqv6vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:41.033Z\",\n - \ \"updated\": \"2021-05-10T14:57:41.033Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:41.033Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNTwqv6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.1.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.1.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658661013588\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658661013588&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658661013588\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CNTwqv6vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:41.033Z\",\n - \ \"updated\": \"2021-05-10T14:57:41.033Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:41.033Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNTwqv6vv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658661013588\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658661013588&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658661013588\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CNTwqv6vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:41.033Z\",\n - \ \"updated\": \"2021-05-10T14:57:41.033Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:41.033Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNTwqv6vv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CNTwqv6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658661013588' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658660241374\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658660241374&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660241374\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CN7f+/2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.261Z\",\n \"updated\": \"2021-05-10T14:57:40.261Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.261Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658660306058\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658660306058&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660306058\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CIrZ//2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.326Z\",\n \"updated\": \"2021-05-10T14:57:40.326Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.326Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658660580530\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658660580530&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660580530\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLK5kP6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.602Z\",\n \"updated\": \"2021-05-10T14:57:40.602Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.602Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658660339918\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658660339918&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660339918\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CM7hgf6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.371Z\",\n \"updated\": \"2021-05-10T14:57:40.371Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.371Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658660340049\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658660340049&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660340049\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNHigf6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.373Z\",\n \"updated\": \"2021-05-10T14:57:40.373Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.373Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658660523846\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658660523846&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660523846\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMb+jP6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.544Z\",\n \"updated\": \"2021-05-10T14:57:40.544Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.544Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658660178723\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658660178723&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660178723\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKP29/2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.212Z\",\n \"updated\": \"2021-05-10T14:57:40.212Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.212Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658661013588\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658661013588&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658661013588\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CNTwqv6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:41.033Z\",\n \"updated\": \"2021-05-10T14:57:41.033Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:41.033Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658660090983\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658660090983&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660090983\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COfI8v2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.110Z\",\n \"updated\": \"2021-05-10T14:57:40.110Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.110Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658660178879\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658660178879&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658660178879\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CL/39/2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:40.198Z\",\n \"updated\": \"2021-05-10T14:57:40.198Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:40.198Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8564' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:41 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_Wwk-kkWqgEIwa4-BuduMicvAiQvL7LZX - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_get_put_recursive.yaml b/gcsfs/tests/recordings/test_get_put_recursive.yaml deleted file mode 100644 index efab1ff1..00000000 --- a/gcsfs/tests/recordings/test_get_put_recursive.yaml +++ /dev/null @@ -1,4949 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIANpJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTZ79qllYVNxaHWVd5Gav5cIslBN6lzJwV+2GmMN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB8gnzds4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658644773613\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658644773613&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644773613\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CO3Vy/avv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:24.793Z\",\n - \ \"updated\": \"2021-05-10T14:57:24.793Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:24.793Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO3Vy/avv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658644845543\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658644845543&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658644845543\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COeH0Pavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.876Z\",\n \"updated\": \"2021-05-10T14:57:24.876Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.876Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COeH0Pavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658644847161\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658644847161&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658644847161\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLmU0Pavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.879Z\",\n \"updated\": \"2021-05-10T14:57:24.879Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.879Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLmU0Pavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658644869428\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658644869428&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658644869428\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLTC0favv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.891Z\",\n \"updated\": \"2021-05-10T14:57:24.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.891Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLTC0favv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658644886266\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658644886266&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644886266\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CPrF0vavv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:24.914Z\",\n - \ \"updated\": \"2021-05-10T14:57:24.914Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:24.914Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPrF0vavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658644908206\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658644908206&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658644908206\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CK7x0/avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.930Z\",\n \"updated\": \"2021-05-10T14:57:24.930Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.930Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK7x0/avv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658644924225\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658644924225&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658644924225\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMHu1Pavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.951Z\",\n \"updated\": \"2021-05-10T14:57:24.951Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.951Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMHu1Pavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658644937224\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658644937224&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644937224\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CIjU1favv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:24.967Z\",\n - \ \"updated\": \"2021-05-10T14:57:24.967Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:24.967Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIjU1favv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658644971465\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658644971465&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644971465\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CMnf1/avv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:24.990Z\",\n - \ \"updated\": \"2021-05-10T14:57:24.990Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:24.990Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMnf1/avv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658644773613\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658644773613&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644773613\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO3Vy/avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.793Z\",\n \"updated\": \"2021-05-10T14:57:24.793Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.793Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658644937224\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658644937224&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644937224\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIjU1favv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.967Z\",\n \"updated\": \"2021-05-10T14:57:24.967Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.967Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658644773613\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658644773613&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644773613\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO3Vy/avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.793Z\",\n \"updated\": \"2021-05-10T14:57:24.793Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.793Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658644937224\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658644937224&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644937224\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIjU1favv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.967Z\",\n \"updated\": \"2021-05-10T14:57:24.967Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.967Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CIjU1favv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658644937224' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CO3Vy/avv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658644773613' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658645462369\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658645462369&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645462369\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COHa9favv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:25.482Z\",\n - \ \"updated\": \"2021-05-10T14:57:25.482Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:25.482Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COHa9favv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658645544898\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658645544898&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645544898\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CMLf+vavv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:25.564Z\",\n - \ \"updated\": \"2021-05-10T14:57:25.564Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:25.564Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMLf+vavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.1.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.1.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658645462369\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658645462369&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645462369\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COHa9favv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:25.482Z\",\n - \ \"updated\": \"2021-05-10T14:57:25.482Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:25.482Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COHa9favv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658645462369\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658645462369&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645462369\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COHa9favv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:25.482Z\",\n - \ \"updated\": \"2021-05-10T14:57:25.482Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:25.482Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COHa9favv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - COHa9favv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658645462369' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.2.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.2.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658645544898\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658645544898&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645544898\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CMLf+vavv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:25.564Z\",\n - \ \"updated\": \"2021-05-10T14:57:25.564Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:25.564Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMLf+vavv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658645544898\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658645544898&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645544898\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CMLf+vavv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:25.564Z\",\n - \ \"updated\": \"2021-05-10T14:57:25.564Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:25.564Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMLf+vavv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CMLf+vavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658645544898' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658644869428\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658644869428&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644869428\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLTC0favv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.891Z\",\n \"updated\": \"2021-05-10T14:57:24.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.891Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658644908206\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658644908206&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644908206\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CK7x0/avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.930Z\",\n \"updated\": \"2021-05-10T14:57:24.930Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.930Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658644847161\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658644847161&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644847161\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLmU0Pavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.879Z\",\n \"updated\": \"2021-05-10T14:57:24.879Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.879Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658644924225\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658644924225&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644924225\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMHu1Pavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.951Z\",\n \"updated\": \"2021-05-10T14:57:24.951Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.951Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658644845543\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658644845543&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644845543\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COeH0Pavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.876Z\",\n \"updated\": \"2021-05-10T14:57:24.876Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.876Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658644971465\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658644971465&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644971465\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMnf1/avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.990Z\",\n \"updated\": \"2021-05-10T14:57:24.990Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.990Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658644886266\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658644886266&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644886266\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPrF0vavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.914Z\",\n \"updated\": \"2021-05-10T14:57:24.914Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.914Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658645462369\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658645462369&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645462369\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COHa9favv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:25.482Z\",\n \"updated\": \"2021-05-10T14:57:25.482Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:25.482Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658645544898\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658645544898&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658645544898\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMLf+vavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:25.564Z\",\n \"updated\": \"2021-05-10T14:57:25.564Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:25.564Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658644773613\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658644773613&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644773613\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO3Vy/avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.793Z\",\n \"updated\": \"2021-05-10T14:57:24.793Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.793Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658644937224\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658644937224&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658644937224\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIjU1favv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:24.967Z\",\n \"updated\": \"2021-05-10T14:57:24.967Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:24.967Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '9445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:26 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_AXiSVhVUJMvgZWhNRTTPk37y94Sjcg2A - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIANpJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658648775421\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658648775421&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648775421\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CP31v/ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:28.795Z\",\n - \ \"updated\": \"2021-05-10T14:57:28.795Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:28.795Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP31v/ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658648867066\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658648867066&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648867066\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CPrBxfivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:28.886Z\",\n - \ \"updated\": \"2021-05-10T14:57:28.886Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:28.886Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPrBxfivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658648944585\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658648944585&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648944585\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CMmfyvivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:28.968Z\",\n - \ \"updated\": \"2021-05-10T14:57:28.968Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:28.968Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMmfyvivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658648956129\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658648956129&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658648956129\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"COH5yvivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.987Z\",\n \"updated\": \"2021-05-10T14:57:28.987Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.987Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COH5yvivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658648962571\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658648962571&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658648962571\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIusy/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.989Z\",\n \"updated\": \"2021-05-10T14:57:28.989Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.989Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIusy/ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658649029040\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658649029040&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658649029040\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLCzz/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.048Z\",\n \"updated\": \"2021-05-10T14:57:29.048Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.048Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLCzz/ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658649041655\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658649041655&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658649041655\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPeV0Pivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.072Z\",\n \"updated\": \"2021-05-10T14:57:29.072Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.072Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPeV0Pivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658649196150\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658649196150&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649196150\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CPbM2fivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:29.215Z\",\n - \ \"updated\": \"2021-05-10T14:57:29.215Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:29.215Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPbM2fivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658649237721\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658649237721&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658649237721\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CNmR3Pivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.257Z\",\n \"updated\": \"2021-05-10T14:57:29.257Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.257Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNmR3Pivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658648775421\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658648775421&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648775421\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP31v/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.795Z\",\n \"updated\": \"2021-05-10T14:57:28.795Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.795Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658648944585\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658648944585&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648944585\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMmfyvivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.968Z\",\n \"updated\": \"2021-05-10T14:57:28.968Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.968Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658648775421\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658648775421&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648775421\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP31v/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.795Z\",\n \"updated\": \"2021-05-10T14:57:28.795Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.795Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658648944585\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658648944585&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648944585\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMmfyvivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.968Z\",\n \"updated\": \"2021-05-10T14:57:28.968Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.968Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CP31v/ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658648775421' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CMmfyvivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658648944585' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658649676926\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658649676926&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649676926\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CP749vivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:29.696Z\",\n - \ \"updated\": \"2021-05-10T14:57:29.696Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:29.696Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP749vivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658649680725\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658649680725&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649680725\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CNWW9/ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:29.710Z\",\n - \ \"updated\": \"2021-05-10T14:57:29.710Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:29.710Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNWW9/ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.1.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.1.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658649676926\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658649676926&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649676926\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CP749vivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:29.696Z\",\n - \ \"updated\": \"2021-05-10T14:57:29.696Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:29.696Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP749vivv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658649676926\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658649676926&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649676926\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CP749vivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:29.696Z\",\n - \ \"updated\": \"2021-05-10T14:57:29.696Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:29.696Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP749vivv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CP749vivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658649676926' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.2.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.2.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658649680725\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658649680725&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649680725\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CNWW9/ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:29.710Z\",\n - \ \"updated\": \"2021-05-10T14:57:29.710Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:29.710Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNWW9/ivv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658649680725\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658649680725&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649680725\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CNWW9/ivv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:29.710Z\",\n - \ \"updated\": \"2021-05-10T14:57:29.710Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:29.710Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNWW9/ivv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CNWW9/ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658649680725' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658648962571\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658648962571&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648962571\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIusy/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.989Z\",\n \"updated\": \"2021-05-10T14:57:28.989Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.989Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658648956129\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658648956129&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648956129\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"COH5yvivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.987Z\",\n \"updated\": \"2021-05-10T14:57:28.987Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.987Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658649237721\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658649237721&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649237721\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CNmR3Pivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.257Z\",\n \"updated\": \"2021-05-10T14:57:29.257Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.257Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658649041655\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658649041655&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649041655\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPeV0Pivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.072Z\",\n \"updated\": \"2021-05-10T14:57:29.072Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.072Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658649029040\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658649029040&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649029040\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLCzz/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.048Z\",\n \"updated\": \"2021-05-10T14:57:29.048Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.048Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658649196150\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658649196150&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649196150\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPbM2fivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.215Z\",\n \"updated\": \"2021-05-10T14:57:29.215Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.215Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658648867066\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658648867066&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648867066\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPrBxfivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.886Z\",\n \"updated\": \"2021-05-10T14:57:28.886Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.886Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658649676926\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658649676926&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649676926\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP749vivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.696Z\",\n \"updated\": \"2021-05-10T14:57:29.696Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.696Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658649680725\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658649680725&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658649680725\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CNWW9/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:29.710Z\",\n \"updated\": \"2021-05-10T14:57:29.710Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:29.710Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658648775421\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658648775421&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648775421\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CP31v/ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.795Z\",\n \"updated\": \"2021-05-10T14:57:28.795Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.795Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658648944585\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658648944585&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658648944585\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMmfyvivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:28.968Z\",\n \"updated\": \"2021-05-10T14:57:28.968Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:28.968Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '9445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:30 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:30 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_qbTx9ahK876ae0K8l2ukYJrHCfdg3OmS - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIANpJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658651669319\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658651669319&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651669319\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CMfG8Pmvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:31.688Z\",\n - \ \"updated\": \"2021-05-10T14:57:31.688Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:31.688Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMfG8Pmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658651743395\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658651743395&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658651743395\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKOJ9fmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.766Z\",\n \"updated\": \"2021-05-10T14:57:31.766Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.766Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKOJ9fmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658651749266\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658651749266&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651749266\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CJK39fmvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:31.777Z\",\n - \ \"updated\": \"2021-05-10T14:57:31.777Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:31.777Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJK39fmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658651760822\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658651760822&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658651760822\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLaR9vmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.792Z\",\n \"updated\": \"2021-05-10T14:57:31.792Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.792Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLaR9vmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658651820737\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658651820737&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651820737\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CMHl+fmvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:31.840Z\",\n - \ \"updated\": \"2021-05-10T14:57:31.840Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:31.840Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMHl+fmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658651909564\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658651909564&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658651909564\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLyb//mvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.939Z\",\n \"updated\": \"2021-05-10T14:57:31.939Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.939Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLyb//mvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658651934085\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658651934085&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658651934085\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIXbgPqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.953Z\",\n \"updated\": \"2021-05-10T14:57:31.953Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.953Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIXbgPqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658652083038\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658652083038&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652083038\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CN7mifqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:32.102Z\",\n - \ \"updated\": \"2021-05-10T14:57:32.102Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:32.102Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN7mifqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658652133747\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658652133747&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658652133747\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPPyjPqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:32.153Z\",\n \"updated\": \"2021-05-10T14:57:32.153Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:32.153Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPPyjPqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658651669319\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658651669319&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651669319\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CMfG8Pmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.688Z\",\n \"updated\": \"2021-05-10T14:57:31.688Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.688Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658651820737\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658651820737&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651820737\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMHl+fmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.840Z\",\n \"updated\": \"2021-05-10T14:57:31.840Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.840Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '241' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658651669319\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658651669319&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651669319\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CMfG8Pmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.688Z\",\n \"updated\": \"2021-05-10T14:57:31.688Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.688Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658651820737\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658651820737&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651820737\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMHl+fmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.840Z\",\n \"updated\": \"2021-05-10T14:57:31.840Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.840Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1779' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CMHl+fmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658651820737' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CMfG8Pmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658651669319' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658652534638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658652534638&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652534638\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CO6upfqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:32.554Z\",\n - \ \"updated\": \"2021-05-10T14:57:32.554Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:32.554Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO6upfqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "temp_dir/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658652626223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658652626223&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652626223\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CK/6qvqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:32.645Z\",\n - \ \"updated\": \"2021-05-10T14:57:32.645Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:32.645Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK/6qvqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.1.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.1.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658652534638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658652534638&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652534638\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CO6upfqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:32.554Z\",\n - \ \"updated\": \"2021-05-10T14:57:32.554Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:32.554Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO6upfqvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658652534638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658652534638&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652534638\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CO6upfqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:32.554Z\",\n - \ \"updated\": \"2021-05-10T14:57:32.554Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:32.554Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO6upfqvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CO6upfqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658652534638' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir%2Faccounts.2.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=temp_dir/accounts.2.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658652626223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658652626223&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652626223\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CK/6qvqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:32.645Z\",\n - \ \"updated\": \"2021-05-10T14:57:32.645Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:32.645Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK/6qvqvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658652626223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658652626223&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652626223\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CK/6qvqvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:32.645Z\",\n - \ \"updated\": \"2021-05-10T14:57:32.645Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:32.645Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '804' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK/6qvqvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CK/6qvqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658652626223' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658651743395\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658651743395&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651743395\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKOJ9fmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.766Z\",\n \"updated\": \"2021-05-10T14:57:31.766Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.766Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658651760822\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658651760822&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651760822\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLaR9vmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.792Z\",\n \"updated\": \"2021-05-10T14:57:31.792Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.792Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658652133747\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658652133747&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652133747\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPPyjPqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:32.153Z\",\n \"updated\": \"2021-05-10T14:57:32.153Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:32.153Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658651934085\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658651934085&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651934085\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIXbgPqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.953Z\",\n \"updated\": \"2021-05-10T14:57:31.953Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.953Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658651909564\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658651909564&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651909564\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLyb//mvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.939Z\",\n \"updated\": \"2021-05-10T14:57:31.939Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.939Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658652083038\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658652083038&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652083038\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CN7mifqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:32.102Z\",\n \"updated\": \"2021-05-10T14:57:32.102Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:32.102Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658651749266\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658651749266&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651749266\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJK39fmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.777Z\",\n \"updated\": \"2021-05-10T14:57:31.777Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.777Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.1.json/1620658652534638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json?generation=1620658652534638&alt=media\",\n - \ \"name\": \"temp_dir/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652534638\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CO6upfqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:32.554Z\",\n \"updated\": \"2021-05-10T14:57:32.554Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:32.554Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp_dir/accounts.2.json/1620658652626223\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json?generation=1620658652626223&alt=media\",\n - \ \"name\": \"temp_dir/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658652626223\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CK/6qvqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:32.645Z\",\n \"updated\": \"2021-05-10T14:57:32.645Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:32.645Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658651669319\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658651669319&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651669319\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CMfG8Pmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.688Z\",\n \"updated\": \"2021-05-10T14:57:31.688Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.688Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658651820737\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658651820737&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658651820737\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CMHl+fmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:31.840Z\",\n \"updated\": \"2021-05-10T14:57:31.840Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:31.840Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '9445' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp_dir%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:33 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:33 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_QvG5DGYHhIAMFxP2DVpOl6xoReyiIdJ2 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_info.yaml b/gcsfs/tests/recordings/test_info.yaml deleted file mode 100644 index 8d4e1bad..00000000 --- a/gcsfs/tests/recordings/test_info.yaml +++ /dev/null @@ -1,385 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAIpJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hblIzd9LBFmopst5Y6wh - L2QwQYhD8Cs8y+tn+UCoWEcf/P+X4wMEC22h4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uwubp1aJnUPkFNuKKWTS2o0-BZj5wFEFe12IddWyy5uaG_3JUUUElVxyqi1-kmhUD9ENRABJIH-YI80VVl6JmgChI_5Pw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uwubp1aJnUPkFNuKKWTS2o0-BZj5wFEFe12IddWyy5uaG_3JUUUElVxyqi1-kmhUD9ENRABJIH-YI80VVl6JmgChI_5Pw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658572357859\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658572357859&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658572357859\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COPhh9Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:12.378Z\",\n \"updated\": \"2021-05-10T14:56:12.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:12.378Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COPhh9Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uwubp1aJnUPkFNuKKWTS2o0-BZj5wFEFe12IddWyy5uaG_3JUUUElVxyqi1-kmhUD9ENRABJIH-YI80VVl6JmgChI_5Pw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658572357859\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658572357859&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658572357859\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COPhh9Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:12.378Z\",\n \"updated\": \"2021-05-10T14:56:12.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:12.378Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COPhh9Svv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=tmp%2Ftest%2Fa%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=tmp/test/a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658572357859\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658572357859&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658572357859\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COPhh9Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:12.378Z\",\n \"updated\": \"2021-05-10T14:56:12.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:12.378Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COPhh9Svv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658572357859\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658572357859&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658572357859\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"COPhh9Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:12.378Z\",\n \"updated\": \"2021-05-10T14:56:12.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:12.378Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '876' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_X_xb-CRoGUCTdD06ov6kApXo_quxxjwc\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:12 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_X_xb-CRoGUCTdD06ov6kApXo_quxxjwc--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_X_xb-CRoGUCTdD06ov6kApXo_quxxjwc - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_iterable.yaml b/gcsfs/tests/recordings/test_iterable.yaml deleted file mode 100644 index 30eec1bb..00000000 --- a/gcsfs/tests/recordings/test_iterable.yaml +++ /dev/null @@ -1,523 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAhKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxYofNIzrxxGVfgKAxItPdgpZEZT2BTMawALSyST-R0x7JHSTwJTKOtR83v2zJEVh9FALhu83OwCdZBf67rLVYRDNKq8A - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: 'abc - - 123' - headers: - Content-Length: - - '7' - Content-Range: - - bytes 0-6/7 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxYofNIzrxxGVfgKAxItPdgpZEZT2BTMawALSyST-R0x7JHSTwJTKOtR83v2zJEVh9FALhu83OwCdZBf67rLVYRDNKq8A - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658697321618\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658697321618\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"7\",\n \"md5Hash\": \"Ct0kHHIwoO7B0dUWsMUiZA==\",\n - \ \"crc32c\": \"mVuMZQ==\",\n \"etag\": \"CJL50o+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:17.341Z\",\n \"updated\": \"2021-05-10T14:58:17.341Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:17.341Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJL50o+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxYofNIzrxxGVfgKAxItPdgpZEZT2BTMawALSyST-R0x7JHSTwJTKOtR83v2zJEVh9FALhu83OwCdZBf67rLVYRDNKq8A -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658697321618\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658697321618\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"7\",\n \"md5Hash\": \"Ct0kHHIwoO7B0dUWsMUiZA==\",\n - \ \"crc32c\": \"mVuMZQ==\",\n \"etag\": \"CJL50o+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:17.341Z\",\n \"updated\": \"2021-05-10T14:58:17.341Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:17.341Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJL50o+wv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - Range: - - bytes=0-6 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?alt=media&generation=1620658697321618 - response: - body: - string: 'abc - - 123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '7' - Content-Range: - - bytes 0-6/7 - Content-Type: - - application/octet-stream - Etag: - - CJL50o+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658697321618' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658697321618\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658697321618\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"7\",\n \"md5Hash\": \"Ct0kHHIwoO7B0dUWsMUiZA==\",\n - \ \"crc32c\": \"mVuMZQ==\",\n \"etag\": \"CJL50o+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:17.341Z\",\n \"updated\": \"2021-05-10T14:58:17.341Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:17.341Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJL50o+wv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - Range: - - bytes=0-6 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?alt=media&generation=1620658697321618 - response: - body: - string: 'abc - - 123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '7' - Content-Range: - - bytes 0-6/7 - Content-Type: - - application/octet-stream - Etag: - - CJL50o+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658697321618' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658697321618\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658697321618\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"7\",\n \"md5Hash\": \"Ct0kHHIwoO7B0dUWsMUiZA==\",\n - \ \"crc32c\": \"mVuMZQ==\",\n \"etag\": \"CJL50o+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:17.341Z\",\n \"updated\": \"2021-05-10T14:58:17.341Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:17.341Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJL50o+wv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - Range: - - bytes=0-6 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?alt=media&generation=1620658697321618 - response: - body: - string: 'abc - - 123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '7' - Content-Range: - - bytes 0-6/7 - Content-Type: - - application/octet-stream - Etag: - - CJL50o+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658697321618' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658697321618\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658697321618&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658697321618\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"7\",\n \"md5Hash\": \"Ct0kHHIwoO7B0dUWsMUiZA==\",\n \"crc32c\": - \"mVuMZQ==\",\n \"etag\": \"CJL50o+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:17.341Z\",\n \"updated\": \"2021-05-10T14:58:17.341Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:17.341Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '876' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_mk0G1D66XVBZAHBFmPziI_NXj16HcQc2\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:18 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mk0G1D66XVBZAHBFmPziI_NXj16HcQc2--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_mk0G1D66XVBZAHBFmPziI_NXj16HcQc2 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_large_upload.yaml b/gcsfs/tests/recordings/test_large_upload.yaml deleted file mode 100644 index e0fb7297..00000000 --- a/gcsfs/tests/recordings/test_large_upload.yaml +++ /dev/null @@ -1,541 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHtJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '7123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 0-262143/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - c8e7200d3abf42616c1b182108f01d28 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 0-262143/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - c8e7200d3abf42616c1b182108f01d28 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 262144-524287/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-524287 - Server: - - UploadServer - X-Range-MD5: - - 76428b8d77c977a7d87101b1956e3e0f - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 262144-524287/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-524287 - Server: - - UploadServer - X-Range-MD5: - - 76428b8d77c977a7d87101b1956e3e0f - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 524288-786431/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-786431 - Server: - - UploadServer - X-Range-MD5: - - d0cb5cf4e13fb5728c6c9c194a8df298 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 524288-786431/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-786431 - Server: - - UploadServer - X-Range-MD5: - - d0cb5cf4e13fb5728c6c9c194a8df298 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg -- request: - body: '7123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123' - headers: - Content-Length: - - '262144' - Content-Range: - - bytes 786432-1048575/1048576 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658560613644\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658560613644&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658560613644\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"1048576\",\n \"md5Hash\": - \"WkMiVAUW1IeCesnRRyniYg==\",\n \"crc32c\": \"m/kv4g==\",\n \"etag\": \"CIz6us6vv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:00.635Z\",\n \"updated\": \"2021-05-10T14:56:00.635Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:00.635Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '724' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIz6us6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxpyVFU37OdckGEAuqJDs4ieEDh-8TG6A1z_oAbNYafaqy2dzIjR6GrwGytz7h7MK5OOZqKL4-IQ3mtbyZB93IzNLugWg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media - response: - body: - string: '7123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123712371237123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '1048576' - Content-Type: - - application/octet-stream - Etag: - - CIz6us6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658560613644' - X-Goog-Hash: - - crc32c=m/kv4g==,md5=WkMiVAUW1IeCesnRRyniYg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658560613644\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658560613644&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658560613644\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"1048576\",\n \"md5Hash\": \"WkMiVAUW1IeCesnRRyniYg==\",\n \"crc32c\": - \"m/kv4g==\",\n \"etag\": \"CIz6us6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:00.635Z\",\n \"updated\": \"2021-05-10T14:56:00.635Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:00.635Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '850' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_ymPn9M4PnFRDoPIFdEOZNsDNKWi-BXZq\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:01 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_ymPn9M4PnFRDoPIFdEOZNsDNKWi-BXZq--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_ymPn9M4PnFRDoPIFdEOZNsDNKWi-BXZq - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_ls.yaml b/gcsfs/tests/recordings/test_ls.yaml deleted file mode 100644 index ef2c7d80..00000000 --- a/gcsfs/tests/recordings/test_ls.yaml +++ /dev/null @@ -1,1149 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAKFJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658594787733\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658594787733&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594787733\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJXj4N6vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:34.807Z\",\n - \ \"updated\": \"2021-05-10T14:56:34.807Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:34.807Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJXj4N6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658594847510\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658594847510&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594847510\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CJa25N6vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:34.871Z\",\n - \ \"updated\": \"2021-05-10T14:56:34.871Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:34.871Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJa25N6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658594856320\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658594856320&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658594856320\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CID75N6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.881Z\",\n \"updated\": \"2021-05-10T14:56:34.881Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.881Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CID75N6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658594857701\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658594857701&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658594857701\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"COWF5d6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.891Z\",\n \"updated\": \"2021-05-10T14:56:34.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.891Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COWF5d6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658594865738\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658594865738&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594865738\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CMrE5d6vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:34.891Z\",\n - \ \"updated\": \"2021-05-10T14:56:34.891Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:34.891Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMrE5d6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658595897717\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658595897717&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658595897717\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPXCpN+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:35.917Z\",\n \"updated\": \"2021-05-10T14:56:35.917Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:35.917Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPXCpN+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658595909186\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658595909186&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658595909186\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMKcpd+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:35.940Z\",\n \"updated\": \"2021-05-10T14:56:35.940Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:35.940Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMKcpd+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658595983958\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658595983958&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658595983958\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNbkqd+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:36.005Z\",\n \"updated\": \"2021-05-10T14:56:36.005Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:36.005Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNbkqd+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658596000048\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658596000048&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658596000048\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CLDiqt+vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:36.027Z\",\n - \ \"updated\": \"2021-05-10T14:56:36.027Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:36.027Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLDiqt+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzKbbvgaL205IHgi0JI7QN7uLG_B0-m9DjmwamgW4KOkfCNSwZNNhAQ-WpNqcost2GHVtLa5rHPKp-btPBoarhTZr4mHw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzKbbvgaL205IHgi0JI7QN7uLG_B0-m9DjmwamgW4KOkfCNSwZNNhAQ-WpNqcost2GHVtLa5rHPKp-btPBoarhTZr4mHw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658596572079\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658596572079&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658596572079\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CK/Xzd+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:36.643Z\",\n \"updated\": \"2021-05-10T14:56:36.643Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:36.643Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK/Xzd+vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzKbbvgaL205IHgi0JI7QN7uLG_B0-m9DjmwamgW4KOkfCNSwZNNhAQ-WpNqcost2GHVtLa5rHPKp-btPBoarhTZr4mHw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"prefixes\": [\n \"nested/\",\n - \ \"test/\"\n ],\n \"items\": [\n {\n \"kind\": \"storage#object\",\n - \ \"id\": \"gcsfs-testing/2014-01-01.csv/1620658594856320\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658594856320&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594856320\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CID75N6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.881Z\",\n \"updated\": \"2021-05-10T14:56:34.881Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.881Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658594857701\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658594857701&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594857701\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"COWF5d6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.891Z\",\n \"updated\": \"2021-05-10T14:56:34.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.891Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658595897717\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658595897717&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658595897717\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPXCpN+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:35.917Z\",\n \"updated\": \"2021-05-10T14:56:35.917Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:35.917Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '2605' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=nested%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"prefixes\": [\n \"nested/nested2/\"\n - \ ],\n \"items\": [\n {\n \"kind\": \"storage#object\",\n \"id\": - \"gcsfs-testing/nested/file1/1620658596572079\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658596572079&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658596572079\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CK/Xzd+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:36.643Z\",\n \"updated\": \"2021-05-10T14:56:36.643Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:36.643Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658595983958\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658595983958&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658595983958\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNbkqd+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:36.005Z\",\n \"updated\": \"2021-05-10T14:56:36.005Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:36.005Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1754' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=nested/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658594856320\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658594856320&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594856320\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CID75N6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.881Z\",\n \"updated\": \"2021-05-10T14:56:34.881Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.881Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658594857701\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658594857701&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594857701\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"COWF5d6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.891Z\",\n \"updated\": \"2021-05-10T14:56:34.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.891Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658595897717\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658595897717&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658595897717\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPXCpN+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:35.917Z\",\n \"updated\": \"2021-05-10T14:56:35.917Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:35.917Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658596572079\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658596572079&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658596572079\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CK/Xzd+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:36.643Z\",\n \"updated\": \"2021-05-10T14:56:36.643Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:36.643Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658595983958\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658595983958&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658595983958\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNbkqd+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:36.005Z\",\n \"updated\": \"2021-05-10T14:56:36.005Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:36.005Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658596000048\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658596000048&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658596000048\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLDiqt+vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:36.027Z\",\n \"updated\": \"2021-05-10T14:56:36.027Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:36.027Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658594865738\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658594865738&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594865738\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CMrE5d6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.891Z\",\n \"updated\": \"2021-05-10T14:56:34.891Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.891Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658594787733\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658594787733&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594787733\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJXj4N6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.807Z\",\n \"updated\": \"2021-05-10T14:56:34.807Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.807Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658594847510\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658594847510&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658594847510\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CJa25N6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:34.871Z\",\n \"updated\": \"2021-05-10T14:56:34.871Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:34.871Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:37 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:37 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_dnhDjIyb3wAZsiDTzZIJIHzRApmgnKf3 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_ls2.yaml b/gcsfs/tests/recordings/test_ls2.yaml deleted file mode 100644 index 7b11024c..00000000 --- a/gcsfs/tests/recordings/test_ls2.yaml +++ /dev/null @@ -1,455 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAI1JmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/nonexistent/o/?delimiter=%2F - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"Not Found\",\n - \ \"errors\": [\n {\n \"message\": \"Not Found\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '193' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/nonexistent/o/?delimiter=/ -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzKjUEqZZTDpxy-5_dGbauzBW2ukSb58su13d7gIKxD25u06POHKXM9NMzQVBiCuL70En9YsQ2vTum1hvYeGAq6qIWhQA - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzKjUEqZZTDpxy-5_dGbauzBW2ukSb58su13d7gIKxD25u06POHKXM9NMzQVBiCuL70En9YsQ2vTum1hvYeGAq6qIWhQA - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658574528793\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658574528793&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658574528793\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": \"AAAAAA==\",\n - \ \"etag\": \"CJmijNWvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:14.548Z\",\n - \ \"updated\": \"2021-05-10T14:56:14.548Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:14.548Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '786' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJmijNWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzKjUEqZZTDpxy-5_dGbauzBW2ukSb58su13d7gIKxD25u06POHKXM9NMzQVBiCuL70En9YsQ2vTum1hvYeGAq6qIWhQA -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658574528793\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658574528793&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658574528793\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJmijNWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:14.548Z\",\n \"updated\": \"2021-05-10T14:56:14.548Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:14.548Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '912' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658574528793\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658574528793&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658574528793\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJmijNWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:14.548Z\",\n \"updated\": \"2021-05-10T14:56:14.548Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:14.548Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '912' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_qEzdseywOnHjckXvbRHTrm7Mlut4yV-9\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:14 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qEzdseywOnHjckXvbRHTrm7Mlut4yV-9--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_qEzdseywOnHjckXvbRHTrm7Mlut4yV-9 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_ls_detail.yaml b/gcsfs/tests/recordings/test_ls_detail.yaml deleted file mode 100644 index ded83c39..00000000 --- a/gcsfs/tests/recordings/test_ls_detail.yaml +++ /dev/null @@ -1,1022 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAKVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658599607710\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658599607710&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599607710\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ77huGvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:39.627Z\",\n - \ \"updated\": \"2021-05-10T14:56:39.627Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:39.627Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ77huGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658599683509\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658599683509&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658599683509\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLXLi+Gvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.703Z\",\n \"updated\": \"2021-05-10T14:56:39.703Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.703Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLXLi+Gvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658599687480\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658599687480&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599687480\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CLjqi+Gvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:39.717Z\",\n - \ \"updated\": \"2021-05-10T14:56:39.717Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:39.717Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLjqi+Gvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658599717621\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658599717621&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658599717621\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPXVjeGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.737Z\",\n \"updated\": \"2021-05-10T14:56:39.737Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.737Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPXVjeGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658599756635\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658599756635&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599756635\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CNuGkOGvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:39.785Z\",\n - \ \"updated\": \"2021-05-10T14:56:39.785Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:39.785Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNuGkOGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658599779312\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658599779312&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599779312\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CPC3keGvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:39.800Z\",\n - \ \"updated\": \"2021-05-10T14:56:39.800Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:39.800Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPC3keGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658599793725\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658599793725&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658599793725\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL2okuGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.822Z\",\n \"updated\": \"2021-05-10T14:56:39.822Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.822Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL2okuGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658599884260\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658599884260&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658599884260\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"COTrl+Gvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.904Z\",\n \"updated\": \"2021-05-10T14:56:39.904Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.904Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COTrl+Gvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658600695661\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658600695661&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658600695661\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CO2uyeGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:40.715Z\",\n \"updated\": \"2021-05-10T14:56:40.715Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:40.715Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO2uyeGvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=nested%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"prefixes\": [\n \"nested/nested2/\"\n - \ ],\n \"items\": [\n {\n \"kind\": \"storage#object\",\n \"id\": - \"gcsfs-testing/nested/file1/1620658599717621\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658599717621&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599717621\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPXVjeGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.737Z\",\n \"updated\": \"2021-05-10T14:56:39.737Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.737Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658599793725\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658599793725&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599793725\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL2okuGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.822Z\",\n \"updated\": \"2021-05-10T14:56:39.822Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.822Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1754' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=nested/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658599683509\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658599683509&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599683509\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLXLi+Gvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.703Z\",\n \"updated\": \"2021-05-10T14:56:39.703Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.703Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658599884260\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658599884260&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599884260\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"COTrl+Gvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.904Z\",\n \"updated\": \"2021-05-10T14:56:39.904Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.904Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658600695661\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658600695661&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658600695661\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CO2uyeGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:40.715Z\",\n \"updated\": \"2021-05-10T14:56:40.715Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:40.715Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658599717621\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658599717621&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599717621\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPXVjeGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.737Z\",\n \"updated\": \"2021-05-10T14:56:39.737Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.737Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658599793725\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658599793725&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599793725\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL2okuGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.822Z\",\n \"updated\": \"2021-05-10T14:56:39.822Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.822Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658599779312\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658599779312&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599779312\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPC3keGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.800Z\",\n \"updated\": \"2021-05-10T14:56:39.800Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.800Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658599687480\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658599687480&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599687480\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLjqi+Gvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.717Z\",\n \"updated\": \"2021-05-10T14:56:39.717Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.717Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658599607710\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658599607710&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599607710\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJ77huGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.627Z\",\n \"updated\": \"2021-05-10T14:56:39.627Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.627Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658599756635\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658599756635&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658599756635\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CNuGkOGvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:39.785Z\",\n \"updated\": \"2021-05-10T14:56:39.785Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:39.785Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:41 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:41 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_2bJVnf21sRWVFTIbQx1c-o2nqa2TuQpE - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_ls_prefix_cache.yaml b/gcsfs/tests/recordings/test_ls_prefix_cache.yaml deleted file mode 100644 index 05a6c543..00000000 --- a/gcsfs/tests/recordings/test_ls_prefix_cache.yaml +++ /dev/null @@ -1,1264 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAC5KmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1Ujl4dUW5SM3fSwRZqKbL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg9b1v+I4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658736029589\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658736029589&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736029589\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJW/jaKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:56.049Z\",\n - \ \"updated\": \"2021-05-10T14:58:56.049Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:56.049Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJW/jaKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658736033417\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658736033417&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736033417\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIndjaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.063Z\",\n \"updated\": \"2021-05-10T14:58:56.063Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.063Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIndjaKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658736129330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658736129330&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736129330\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLLKk6Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.148Z\",\n \"updated\": \"2021-05-10T14:58:56.148Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.148Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLLKk6Kwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658736129495\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658736129495&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736129495\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CNfLk6Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.162Z\",\n \"updated\": \"2021-05-10T14:58:56.162Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.162Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNfLk6Kwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658736136250\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658736136250&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736136250\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CLqAlKKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:56.163Z\",\n - \ \"updated\": \"2021-05-10T14:58:56.163Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:56.163Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLqAlKKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658736138907\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658736138907&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736138907\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CJuVlKKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:56.172Z\",\n - \ \"updated\": \"2021-05-10T14:58:56.172Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:56.172Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJuVlKKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658736229182\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658736229182&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736229182\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CL7WmaKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:56.248Z\",\n - \ \"updated\": \"2021-05-10T14:58:56.248Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:56.248Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL7WmaKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658736239604\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658736239604&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736239604\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPSnmqKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.272Z\",\n \"updated\": \"2021-05-10T14:58:56.272Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.272Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPSnmqKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658736328878\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658736328878&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736328878\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CK7hn6Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.348Z\",\n \"updated\": \"2021-05-10T14:58:56.348Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.348Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK7hn6Kwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyfm7lxXvmG5BTev15vclblVYSe3M8J9TmqdHtgrxjLiu0KhVIbtfj0dM1UT0eP85SV20uypYNxnWyBgCeDtu2EaoBtPQ - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyfm7lxXvmG5BTev15vclblVYSe3M8J9TmqdHtgrxjLiu0KhVIbtfj0dM1UT0eP85SV20uypYNxnWyBgCeDtu2EaoBtPQ - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file1/1620658736823117\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile1?generation=1620658736823117&alt=media\",\n - \ \"name\": \"a/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736823117\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CM32vaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.843Z\",\n \"updated\": \"2021-05-10T14:58:56.843Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.843Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '734' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM32vaKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyfm7lxXvmG5BTev15vclblVYSe3M8J9TmqdHtgrxjLiu0KhVIbtfj0dM1UT0eP85SV20uypYNxnWyBgCeDtu2EaoBtPQ -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1riFL00FIJx52NfCuP8g5u_Dt4kI88URD-mNJKJI_Emc3jpz91Qhe5wyJJbSFy_kAHhKL4gIUCS2oqiY2w7nNLJkWPg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1riFL00FIJx52NfCuP8g5u_Dt4kI88URD-mNJKJI_Emc3jpz91Qhe5wyJJbSFy_kAHhKL4gIUCS2oqiY2w7nNLJkWPg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file2/1620658737425632\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile2?generation=1620658737425632&alt=media\",\n - \ \"name\": \"a/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658737425632\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CODZ4qKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:57.445Z\",\n \"updated\": \"2021-05-10T14:58:57.445Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:57.445Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '734' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CODZ4qKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1riFL00FIJx52NfCuP8g5u_Dt4kI88URD-mNJKJI_Emc3jpz91Qhe5wyJJbSFy_kAHhKL4gIUCS2oqiY2w7nNLJkWPg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=a%2Ffile - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/file1/1620658736823117\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile1?generation=1620658736823117&alt=media\",\n - \ \"name\": \"a/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736823117\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CM32vaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.843Z\",\n \"updated\": \"2021-05-10T14:58:56.843Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.843Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file2/1620658737425632\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile2?generation=1620658737425632&alt=media\",\n - \ \"name\": \"a/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658737425632\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CODZ4qKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:57.445Z\",\n \"updated\": \"2021-05-10T14:58:57.445Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:57.445Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1671' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=a/file -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file1/1620658736823117\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile1?generation=1620658736823117&alt=media\",\n - \ \"name\": \"a/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736823117\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CM32vaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.843Z\",\n \"updated\": \"2021-05-10T14:58:56.843Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.843Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '734' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM32vaKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658736033417\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658736033417&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736033417\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIndjaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.063Z\",\n \"updated\": \"2021-05-10T14:58:56.063Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.063Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658736129495\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658736129495&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736129495\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CNfLk6Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.162Z\",\n \"updated\": \"2021-05-10T14:58:56.162Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.162Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658736328878\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658736328878&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736328878\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CK7hn6Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.348Z\",\n \"updated\": \"2021-05-10T14:58:56.348Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.348Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file1/1620658736823117\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile1?generation=1620658736823117&alt=media\",\n - \ \"name\": \"a/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658736823117\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CM32vaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.843Z\",\n \"updated\": \"2021-05-10T14:58:56.843Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.843Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file2/1620658737425632\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile2?generation=1620658737425632&alt=media\",\n - \ \"name\": \"a/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658737425632\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CODZ4qKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:57.445Z\",\n \"updated\": \"2021-05-10T14:58:57.445Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:57.445Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658736129330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658736129330&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736129330\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CLLKk6Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.148Z\",\n \"updated\": \"2021-05-10T14:58:56.148Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.148Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658736239604\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658736239604&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736239604\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPSnmqKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.272Z\",\n \"updated\": \"2021-05-10T14:58:56.272Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.272Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658736229182\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658736229182&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736229182\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CL7WmaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.248Z\",\n \"updated\": \"2021-05-10T14:58:56.248Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.248Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658736136250\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658736136250&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736136250\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLqAlKKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.163Z\",\n \"updated\": \"2021-05-10T14:58:56.163Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.163Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658736029589\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658736029589&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736029589\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJW/jaKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.049Z\",\n \"updated\": \"2021-05-10T14:58:56.049Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.049Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658736138907\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658736138907&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658736138907\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CJuVlKKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:56.172Z\",\n \"updated\": \"2021-05-10T14:58:56.172Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:56.172Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '9305' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:58 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:58 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_pUFu3w3DG6EcPfdJ1YpFa0F1iI85_mE2 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_ls_touch.yaml b/gcsfs/tests/recordings/test_ls_touch.yaml deleted file mode 100644 index 695aefd2..00000000 --- a/gcsfs/tests/recordings/test_ls_touch.yaml +++ /dev/null @@ -1,521 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAJFJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '249' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=tmp%2Ftest%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=tmp/test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '249' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uy5bLyUPkOXfMGurl1meVT1l1lOqQKP_sNPEiRc5SdjpABgll0qA1TMHQ9ddEClXsDFIdHWnhFhrRUPSIvIplFvSNZkqw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uy5bLyUPkOXfMGurl1meVT1l1lOqQKP_sNPEiRc5SdjpABgll0qA1TMHQ9ddEClXsDFIdHWnhFhrRUPSIvIplFvSNZkqw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658578438751\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658578438751&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658578438751\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CN/0+tavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:18.458Z\",\n \"updated\": \"2021-05-10T14:56:18.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:18.458Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN/0+tavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uy5bLyUPkOXfMGurl1meVT1l1lOqQKP_sNPEiRc5SdjpABgll0qA1TMHQ9ddEClXsDFIdHWnhFhrRUPSIvIplFvSNZkqw -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzTOqeHqkrbU6T2iwxA_iFvjCHeRqAhGIMeqSmL36KwriYT-6SRbA561PIlqm7h9y_iSNhxLpNi5tsPkdxITaB_8B6gfA - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzTOqeHqkrbU6T2iwxA_iFvjCHeRqAhGIMeqSmL36KwriYT-6SRbA561PIlqm7h9y_iSNhxLpNi5tsPkdxITaB_8B6gfA - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658578860915\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658578860915&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658578860915\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CPPWlNevv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:18.880Z\",\n \"updated\": \"2021-05-10T14:56:18.880Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:18.880Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPPWlNevv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzTOqeHqkrbU6T2iwxA_iFvjCHeRqAhGIMeqSmL36KwriYT-6SRbA561PIlqm7h9y_iSNhxLpNi5tsPkdxITaB_8B6gfA -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=tmp%2Ftest%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658578438751\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658578438751&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658578438751\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CN/0+tavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:18.458Z\",\n \"updated\": \"2021-05-10T14:56:18.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:18.458Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658578860915\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658578860915&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658578860915\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPPWlNevv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:18.880Z\",\n \"updated\": \"2021-05-10T14:56:18.880Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:18.880Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1703' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=tmp/test/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658578438751\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658578438751&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658578438751\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CN/0+tavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:18.458Z\",\n \"updated\": \"2021-05-10T14:56:18.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:18.458Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658578860915\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658578860915&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658578860915\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPPWlNevv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:18.880Z\",\n \"updated\": \"2021-05-10T14:56:18.880Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:18.880Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1703' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_XAedsqSIYjVDRMS1Q0h6bunyMBFRENKC\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:19 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_XAedsqSIYjVDRMS1Q0h6bunyMBFRENKC\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:19 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_XAedsqSIYjVDRMS1Q0h6bunyMBFRENKC--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_XAedsqSIYjVDRMS1Q0h6bunyMBFRENKC - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_many_connect.yaml b/gcsfs/tests/recordings/test_many_connect.yaml deleted file mode 100644 index 3102aa1a..00000000 --- a/gcsfs/tests/recordings/test_many_connect.yaml +++ /dev/null @@ -1,2922 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAG9JmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAG9JmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHBJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHBJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHBJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1Ujl4dUW5SM3fSwRZqKbL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg9b1v+I4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHBJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrUVfyco5aFTcWh1bmSg7+sNcYa - 8kIGE4Q4AL/As7x+lA+EinX4wf9/OT6PTYPl4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHBJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hblIzd9LBFmopst5Y6wh - L2QwQYhD8Cs8y+tn+UCoWEcf/P+X4wMEC22h4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHBJmWAC/4WPsQ7DIBBDfyVibmHP2B+JTnBJUIFD3CGoqvx7Qzt1ymTZsqzntwJrkXkRemJS - 86R67+o2KbaUcfhTknfTLpJ5Nqa1pjeiLSBkz9pSNFBlN+cM1SSsCw5/2beBqrvnALJSiZf1ylh8 - WkljBB8G4Bd4kdeP8oFQsIzcu/8vxwcNJ6x34wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHFJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHFJmWAC/4WPMQ7DIBAEv2JRJ9C7zEesE5xtFOAQdwiiyH+PSapUrla7mmL2rcBaZF6EnpjU - PKneu7pNii1lHP2M5N20i2SejWmt6Y1oCwjZs7YUDVTZjQ1U3T0HkJVKvMQrY/FpJY0RfLjET0mq - SVgXHH0IfoUXef0sHwgFy9i9+/9yfABPEENN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHFJmWAC/4XPsQ7DIAwE0F9BzC3sGfsjkQVOggoYYSNSVfn3hnbqlPFON7x7a3AOmWehJ2Y9 - Kb3vu74pzY4KjryJFJ6s7b2blWiNCCWwcZQsNNlsY6whL2QwQYjqau4iNX8vEWShmi7np45aFjYV - R1YnKgc/gF/wLK+f8oFQsY4++P8vxwcIgekt4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHFJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKI6Wzl4ddU6V6llYVNx6Mu8i9T8 - vUSQhWoagF/gWV4/ygdCxTr84P+/HB+YzFqe4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHFJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHFJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHFJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHJJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHJJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHJJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc1K82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz23FPLwqbiyOqKb4w15IUMJgjxEneRmr+XCLJQ - TeqUysEPwa/wLK+f5QOhYh198P9fjg+z0wad4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHJJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHJJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -version: 1 diff --git a/gcsfs/tests/recordings/test_many_connect_new.yaml b/gcsfs/tests/recordings/test_many_connect_new.yaml deleted file mode 100644 index d8cb3ae4..00000000 --- a/gcsfs/tests/recordings/test_many_connect_new.yaml +++ /dev/null @@ -1,2922 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHRJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrUVfyco5aFTcWh1bmSg7+sNcYa - 8kIGE4Q4AL/As7x+lA+EinX4wf9/OT6PTYPl4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHVJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHVJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHZJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc1K82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz23FPLwqbiyOqKb4w15IUMJgjxEneRmr+XCLJQ - TeqUysEPwa/wLK+f5QOhYh198P9fjg+z0wad4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHZJmWAC/4WPMQ7DIBAEv2JRJ9C7zEesE5xtFOAQdwiiyH+PSapUrla7mmL2rcBaZF6EnpjU - PKneu7pNii1lHP2M5N20i2SejWmt6Y1oCwjZs7YUDVTZjQ1U3T0HkJVKvMQrY/FpJY0RfLjET0mq - SVgXHH0IfoUXef0sHwgFy9i9+/9yfABPEENN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHZJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHZJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTZ79qllYVNxaHWVb4w15IUMJghRnSs5+MuWi9T8 - vUSQhWoagF/gWV4/ygdCxTr84P+/HB+fT0zw4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHZJmWAC/4WPMQ7DIBAEv2JRJ9C7zEesE5xtFOAQdwiiyH+PSapUrla7mmL2rcBaZF6EnpjU - PKneu7pNii1lHP2M5N20i2SejWmt6Y1oCwjZs7YUDVTZjQ1U3T0HkJVKvMQrY/FpJY0RfLjET0mq - SVgXHH0IfoUXef0sHwgFy9i9+/9yfABPEENN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHZJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHZJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHdJmWAC/4XPsQ7DIAwE0F9BzC3sGfsjkQVOggoYYSNSVfn3hnbqlPFON7x7a3AOmWehJ2Y9 - Kb3vu74pzY4KjryJFJ6s7b2blWiNCCWwcZQsNNlsY6whL2QwQYjqau4iNX8vEWShmi7np45aFjYV - R1YnKgc/gF/wLK+f8oFQsY4++P8vxwcIgekt4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHdJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHdJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTZ79qllYVNxaHWVd5Gav5cIslBN6lzJwV+2GmMN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB8gnzds4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHdJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHdJmWAC/4WPsQ7DIBBDfyVibmHP2B+JTnBJUIFD3CGoqvx7Qzt1ymTZsuTntwJrkXkRemJS - 86R67+o2KbaUcfhTknfTLpJ5Nqa1pjeiLSBkz9pSNFBlNzZQdfccQFYq8bJ+rlJNwrrg8Jf9ylh8 - WkljBB8G4Bd4kdeP8oFQsIzcu/8vxweqU72p4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/?project=test_project - response: - body: - string: "{\n \"kind\": \"storage#buckets\",\n \"items\": [\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"id\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n \"name\": \"803ae74b-fcd9-418c-a923-d11535ef8555\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2021-04-13T13:53:46.885Z\",\n \"updated\": - \"2021-04-13T13:53:46.885Z\",\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": - {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/anaconda-enterprise\",\n \"id\": - \"anaconda-enterprise\",\n \"name\": \"anaconda-enterprise\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"3\",\n \"location\": \"US\",\n - \ \"storageClass\": \"MULTI_REGIONAL\",\n \"etag\": \"CAM=\",\n \"timeCreated\": - \"2017-07-05T23:53:06.552Z\",\n \"updated\": \"2017-07-14T17:39:54.178Z\",\n - \ \"locationType\": \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/anaconda-public-data\",\n - \ \"id\": \"anaconda-public-data\",\n \"name\": \"anaconda-public-data\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"2\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAI=\",\n \"timeCreated\": \"2017-04-05T20:22:12.865Z\",\n - \ \"updated\": \"2017-07-10T16:32:07.980Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/artifacts.test_project.appspot.com\",\n - \ \"id\": \"artifacts.test_project.appspot.com\",\n \"name\": \"artifacts.test_project.appspot.com\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"3\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAM=\",\n \"timeCreated\": \"2016-05-17T18:29:22.774Z\",\n \"updated\": - \"2018-10-29T22:44:41.802Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/test_project_cloudbuild\",\n - \ \"id\": \"test_project_cloudbuild\",\n \"name\": \"test_project_cloudbuild\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": - \"CAE=\",\n \"timeCreated\": \"2017-11-03T20:06:49.744Z\",\n \"updated\": - \"2017-11-03T20:06:49.744Z\",\n \"locationType\": \"multi-region\"\n - \ },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/dataflow-anaconda-compute\",\n - \ \"id\": \"dataflow-anaconda-compute\",\n \"name\": \"dataflow-anaconda-compute\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2017-09-14T18:55:42.848Z\",\n - \ \"updated\": \"2017-09-14T18:55:42.848Z\",\n \"locationType\": - \"multi-region\"\n },\n {\n \"kind\": \"storage#bucket\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n \"id\": - \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-31T20:30:45.847Z\",\n \"updated\": \"2021-03-31T20:30:45.847Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/kubeflow-anaconda-test\",\n - \ \"id\": \"kubeflow-anaconda-test\",\n \"name\": \"kubeflow-anaconda-test\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n - \ \"location\": \"US\",\n \"storageClass\": \"MULTI_REGIONAL\",\n - \ \"etag\": \"CAE=\",\n \"timeCreated\": \"2018-11-12T18:18:30.094Z\",\n - \ \"updated\": \"2018-11-12T18:18:30.094Z\",\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n - \ \"uniformBucketLevelAccess\": {\n \"enabled\": false\n }\n - \ },\n \"locationType\": \"multi-region\"\n },\n {\n \"kind\": - \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdsupertemp\",\n - \ \"id\": \"mdsupertemp\",\n \"name\": \"mdsupertemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-03-02T16:41:06.726Z\",\n \"updated\": \"2021-03-02T16:41:06.726Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n },\n - \ {\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/mdtemp\",\n - \ \"id\": \"mdtemp\",\n \"name\": \"mdtemp\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2020-08-31T21:13:48.793Z\",\n \"updated\": \"2020-08-31T21:13:48.793Z\",\n - \ \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": - false\n }\n },\n \"locationType\": \"multi-region\"\n }\n - \ ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '5827' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?project=test_project -version: 1 diff --git a/gcsfs/tests/recordings/test_map_array.yaml b/gcsfs/tests/recordings/test_map_array.yaml deleted file mode 100644 index dc16a281..00000000 --- a/gcsfs/tests/recordings/test_map_array.yaml +++ /dev/null @@ -1,311 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAFNKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/x"} - - --==0== - - Content-Type: application/octet-stream - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658772830014\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658772830014&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658772830014\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"1000\",\n \"md5Hash\": \"dkRnLQSSkPA5DZyZPH00PQ==\",\n - \ \"crc32c\": \"jS1TJA==\",\n \"etag\": \"CL7O07Owv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:32.849Z\",\n \"updated\": \"2021-05-10T14:59:32.849Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:32.849Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '745' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL7O07Owv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media - response: - body: - string: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '1000' - Content-Type: - - application/octet-stream - Etag: - - CL7O07Owv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658772830014' - X-Goog-Hash: - - crc32c=jS1TJA==,md5=dkRnLQSSkPA5DZyZPH00PQ== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658772830014\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658772830014&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658772830014\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"1000\",\n \"md5Hash\": \"dkRnLQSSkPA5DZyZPH00PQ==\",\n \"crc32c\": - \"jS1TJA==\",\n \"etag\": \"CL7O07Owv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:32.849Z\",\n \"updated\": \"2021-05-10T14:59:32.849Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:32.849Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '871' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2Fx HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_hl6CqzaDOVr0GlnzYC_3lbZxwV05Kuk2\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:33 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_hl6CqzaDOVr0GlnzYC_3lbZxwV05Kuk2--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_hl6CqzaDOVr0GlnzYC_3lbZxwV05Kuk2 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_map_bytearray.yaml b/gcsfs/tests/recordings/test_map_bytearray.yaml deleted file mode 100644 index 85f16e13..00000000 --- a/gcsfs/tests/recordings/test_map_bytearray.yaml +++ /dev/null @@ -1,311 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAFVKmWAC/4WPsQ7DIBBDfyVibmHP2B+JTnBJUIFD3CGoqvx7Qzt1ymTZsuTntwJrkXkRemJS - 86R67+o2KbaUcfhTknfTLpJ5Nqa1pjeiLSBkz9pSNFBlNzZQdfccQFYq8bJ+rlJNwrrg8Jf9ylh8 - WkljBB8G4Bd4kdeP8oFQsIzcu/8vxweqU72p4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/x"} - - --==0== - - Content-Type: application/octet-stream - - - 123 - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658774435821\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658774435821&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658774435821\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n - \ \"crc32c\": \"EHsvsg==\",\n \"etag\": \"CO3PtbSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:34.455Z\",\n \"updated\": \"2021-05-10T14:59:34.455Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:34.455Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '742' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO3PtbSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media - response: - body: - string: '123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Type: - - application/octet-stream - Etag: - - CO3PtbSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658774435821' - X-Goog-Hash: - - crc32c=EHsvsg==,md5=ICy5YqxZB1uWSwcVLSNLcA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658774435821\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658774435821&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658774435821\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CO3PtbSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:34.455Z\",\n \"updated\": \"2021-05-10T14:59:34.455Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:34.455Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2Fx HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_bO2i7kOBathVn8XZWWup1MYa0WYnTxvW\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:34 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_bO2i7kOBathVn8XZWWup1MYa0WYnTxvW--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_bO2i7kOBathVn8XZWWup1MYa0WYnTxvW - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_map_clear_empty.yaml b/gcsfs/tests/recordings/test_map_clear_empty.yaml deleted file mode 100644 index 10428bca..00000000 --- a/gcsfs/tests/recordings/test_map_clear_empty.yaml +++ /dev/null @@ -1,876 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIACNMmWAC/4XPsQ7DIAwE0F9BzC3sGfsjkQVOggoYYSNSVfn3hnbqlPFON7x7a3AOmWehJ2Y9 - Kb3vu74pzY4KjryJFJ6s7b2blWiNCCWwcZQsNNlsY6whL2QwQYjqau4iNX8vEWShmi7np45aFjYV - R1YnKgc/gF/wLK+f8oFQsY4++P8vxwcIgekt4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/1"} - - --==0== - - Content-Type: application/octet-stream - - - 1 - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/1/1620659237179633\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?generation=1620659237179633&alt=media\",\n - \ \"name\": \"mapping/1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620659237179633\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"1\",\n \"md5Hash\": \"xMpCOKC5I4INzFCab3WEmw==\",\n - \ \"crc32c\": \"kPWZ4w==\",\n \"etag\": \"CPGhiZGyv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T15:07:17.199Z\",\n \"updated\": \"2021-05-10T15:07:17.199Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T15:07:17.199Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '742' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPGhiZGyv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/1/1620659237179633\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?generation=1620659237179633&alt=media\",\n - \ \"name\": \"mapping/1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620659237179633\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"1\",\n \"md5Hash\": \"xMpCOKC5I4INzFCab3WEmw==\",\n \"crc32c\": - \"kPWZ4w==\",\n \"etag\": \"CPGhiZGyv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T15:07:17.199Z\",\n \"updated\": \"2021-05-10T15:07:17.199Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T15:07:17.199Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/1/1620659237179633\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?generation=1620659237179633&alt=media\",\n - \ \"name\": \"mapping/1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620659237179633\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"1\",\n \"md5Hash\": \"xMpCOKC5I4INzFCab3WEmw==\",\n \"crc32c\": - \"kPWZ4w==\",\n \"etag\": \"CPGhiZGyv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T15:07:17.199Z\",\n \"updated\": \"2021-05-10T15:07:17.199Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T15:07:17.199Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/1/1620659237179633\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?generation=1620659237179633&alt=media\",\n - \ \"name\": \"mapping/1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620659237179633\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"1\",\n \"md5Hash\": \"xMpCOKC5I4INzFCab3WEmw==\",\n \"crc32c\": - \"kPWZ4w==\",\n \"etag\": \"CPGhiZGyv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T15:07:17.199Z\",\n \"updated\": \"2021-05-10T15:07:17.199Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T15:07:17.199Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/1/1620659237179633\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?generation=1620659237179633&alt=media\",\n - \ \"name\": \"mapping/1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620659237179633\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"1\",\n \"md5Hash\": \"xMpCOKC5I4INzFCab3WEmw==\",\n \"crc32c\": - \"kPWZ4w==\",\n \"etag\": \"CPGhiZGyv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T15:07:17.199Z\",\n \"updated\": \"2021-05-10T15:07:17.199Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T15:07:17.199Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2F1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_znWfXrqZAcghUaLqRI0NWOImBphFRO7a\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 404 Not - Found\r\nContent-Type: application/json; charset=UTF-8\r\nDate: Mon, 10 May - 2021 15:07:17 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 247\r\n\r\n{\n \"error\": - {\n \"code\": 404,\n \"message\": \"No such object: gcsfs-testing/mapping\",\n - \ \"errors\": [\n {\n \"message\": \"No such object: gcsfs-testing/mapping\",\n - \ \"domain\": \"global\",\n \"reason\": \"notFound\"\n }\n - \ ]\n }\n}\n\r\n--batch_znWfXrqZAcghUaLqRI0NWOImBphFRO7a\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 15:07:17 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_znWfXrqZAcghUaLqRI0NWOImBphFRO7a--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_znWfXrqZAcghUaLqRI0NWOImBphFRO7a - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_map_complex_keys.yaml b/gcsfs/tests/recordings/test_map_complex_keys.yaml deleted file mode 100644 index 23346f7a..00000000 --- a/gcsfs/tests/recordings/test_map_complex_keys.yaml +++ /dev/null @@ -1,679 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAE5KmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKI6Wzl4ddU6V6llYVNx6Mu8i9T8 - vUSQhWoagF/gWV4/ygdCxTr84P+/HB+YzFqe4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/1/1620658767138426\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?generation=1620658767138426&alt=media\",\n - \ \"name\": \"mapping/1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658767138426\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"XUFAKrxLKna5cZ2REBfFkg==\",\n - \ \"crc32c\": \"mnG7TA==\",\n \"etag\": \"CPqc+LCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:27.158Z\",\n \"updated\": \"2021-05-10T14:59:27.158Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:27.158Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '742' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPqc+LCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?alt=media - response: - body: - string: hello - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '5' - Content-Type: - - application/octet-stream - Etag: - - CPqc+LCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658767138426' - X-Goog-Hash: - - crc32c=mnG7TA==,md5=XUFAKrxLKna5cZ2REBfFkg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F1?alt=media -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2F1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_kgArWPUUyIwLtUyXpUd0PNFjk_72ON_e\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:27 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_kgArWPUUyIwLtUyXpUd0PNFjk_72ON_e--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_kgArWPUUyIwLtUyXpUd0PNFjk_72ON_e - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/(1, 2)"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/(1, - 2)/1620658767631836\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F(1,%202)\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F(1,%202)?generation=1620658767631836&alt=media\",\n - \ \"name\": \"mapping/(1, 2)\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658767631836\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNyrlrGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:27.651Z\",\n \"updated\": \"2021-05-10T14:59:27.651Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:27.651Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '766' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNyrlrGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F(1,%202)?alt=media - response: - body: - string: world - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '5' - Content-Type: - - application/octet-stream - Etag: - - CNyrlrGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658767631836' - X-Goog-Hash: - - crc32c=MaqBTg==,md5=fXkwN6B2AYZXSwKC8vQ15w== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F(1,%202)?alt=media -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2F(1,%202) HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_T0cqXhmtmE7S3Nou8eK8XNnHBGRKEYSV\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:28 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T0cqXhmtmE7S3Nou8eK8XNnHBGRKEYSV--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_T0cqXhmtmE7S3Nou8eK8XNnHBGRKEYSV - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/(''x'', 1, 2)"} - - --==0== - - Content-Type: application/octet-stream - - - hello world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/('x', - 1, 2)/1620658768169102\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)?generation=1620658768169102&alt=media\",\n - \ \"name\": \"mapping/('x', 1, 2)\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658768169102\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"11\",\n \"md5Hash\": \"XrY7u+Ae7tCTyyK7j1rNww==\",\n - \ \"crc32c\": \"yZRlqg==\",\n \"etag\": \"CI6Rt7Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:28.188Z\",\n \"updated\": \"2021-05-10T14:59:28.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:28.188Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '791' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI6Rt7Gwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)?alt=media - response: - body: - string: hello world - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '11' - Content-Type: - - application/octet-stream - Etag: - - CI6Rt7Gwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658768169102' - X-Goog-Hash: - - crc32c=yZRlqg==,md5=XrY7u+Ae7tCTyyK7j1rNww== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202) - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/('x', - 1, 2)/1620658768169102\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)?generation=1620658768169102&alt=media\",\n - \ \"name\": \"mapping/('x', 1, 2)\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658768169102\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"11\",\n \"md5Hash\": \"XrY7u+Ae7tCTyyK7j1rNww==\",\n - \ \"crc32c\": \"yZRlqg==\",\n \"etag\": \"CI6Rt7Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:28.188Z\",\n \"updated\": \"2021-05-10T14:59:28.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:28.188Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '791' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI6Rt7Gwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202) -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202) - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/('x', - 1, 2)/1620658768169102\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)?generation=1620658768169102&alt=media\",\n - \ \"name\": \"mapping/('x', 1, 2)\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658768169102\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"11\",\n \"md5Hash\": \"XrY7u+Ae7tCTyyK7j1rNww==\",\n - \ \"crc32c\": \"yZRlqg==\",\n \"etag\": \"CI6Rt7Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:28.188Z\",\n \"updated\": \"2021-05-10T14:59:28.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:28.188Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '791' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI6Rt7Gwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202) -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/('x', 1, 2)/1620658768169102\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2F('x',%201,%202)?generation=1620658768169102&alt=media\",\n - \ \"name\": \"mapping/('x', 1, 2)\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658768169102\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"11\",\n \"md5Hash\": \"XrY7u+Ae7tCTyyK7j1rNww==\",\n - \ \"crc32c\": \"yZRlqg==\",\n \"etag\": \"CI6Rt7Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:28.188Z\",\n \"updated\": \"2021-05-10T14:59:28.188Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:28.188Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '917' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2F(''x'',%201,%202) HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_4nMVpXg_PkyJd14a-nYduQ6zINigvKcU\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:28 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_4nMVpXg_PkyJd14a-nYduQ6zINigvKcU--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_4nMVpXg_PkyJd14a-nYduQ6zINigvKcU - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_map_default_gcsfilesystem.yaml b/gcsfs/tests/recordings/test_map_default_gcsfilesystem.yaml deleted file mode 100644 index 6f6dda5e..00000000 --- a/gcsfs/tests/recordings/test_map_default_gcsfilesystem.yaml +++ /dev/null @@ -1,151 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAEdKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_map_errors.yaml b/gcsfs/tests/recordings/test_map_errors.yaml deleted file mode 100644 index cfdd9273..00000000 --- a/gcsfs/tests/recordings/test_map_errors.yaml +++ /dev/null @@ -1,175 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAEhKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fnonexistent?alt=media - response: - body: - string: 'No such object: gcsfs-testing/mapping/nonexistent' - headers: - Cache-Control: - - private, max-age=0 - Content-Length: - - '48' - Content-Type: - - text/html; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fnonexistent?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_map_pickle.yaml b/gcsfs/tests/recordings/test_map_pickle.yaml deleted file mode 100644 index 8b237ede..00000000 --- a/gcsfs/tests/recordings/test_map_pickle.yaml +++ /dev/null @@ -1,345 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAFlKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/x"} - - --==0== - - Content-Type: application/octet-stream - - - 1234567890 - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658778438057\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658778438057&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658778438057\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"10\",\n \"md5Hash\": \"6Afx/PgtEy+bsBjKZzihnw==\",\n - \ \"crc32c\": \"89vU/g==\",\n \"etag\": \"CKnzqbawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:38.457Z\",\n \"updated\": \"2021-05-10T14:59:38.457Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:38.457Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '743' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKnzqbawv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658778438057\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658778438057&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658778438057\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"10\",\n \"md5Hash\": \"6Afx/PgtEy+bsBjKZzihnw==\",\n \"crc32c\": - \"89vU/g==\",\n \"etag\": \"CKnzqbawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:38.457Z\",\n \"updated\": \"2021-05-10T14:59:38.457Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:38.457Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '869' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media - response: - body: - string: '1234567890' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '10' - Content-Type: - - application/octet-stream - Etag: - - CKnzqbawv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658778438057' - X-Goog-Hash: - - crc32c=89vU/g==,md5=6Afx/PgtEy+bsBjKZzihnw== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658778438057\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658778438057&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658778438057\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"10\",\n \"md5Hash\": \"6Afx/PgtEy+bsBjKZzihnw==\",\n \"crc32c\": - \"89vU/g==\",\n \"etag\": \"CKnzqbawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:38.457Z\",\n \"updated\": \"2021-05-10T14:59:38.457Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:38.457Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '869' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2Fx HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_FVU3qEdOnUZ2HMFOYQDvbqoVLQaV883z\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:39 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_FVU3qEdOnUZ2HMFOYQDvbqoVLQaV883z--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_FVU3qEdOnUZ2HMFOYQDvbqoVLQaV883z - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_map_simple.yaml b/gcsfs/tests/recordings/test_map_simple.yaml deleted file mode 100644 index 8f1f0a5a..00000000 --- a/gcsfs/tests/recordings/test_map_simple.yaml +++ /dev/null @@ -1,840 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABZMmWAC/4WPMQ7DIBAEv2JRJ9C7zEesE5xtFOAQdwiiyH+PSapUrla7mmL2rcBaZF6EnpjU - PKneu7pNii1lHP2M5N20i2SejWmt6Y1oCwjZs7YUDVTZjQ1U3T0HkJVKvMQrY/FpJY0RfLjET0mq - SVgXHH0IfoUXef0sHwgFy9i9+/9yfABPEENN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_map_with_data.yaml b/gcsfs/tests/recordings/test_map_with_data.yaml deleted file mode 100644 index 87a12d56..00000000 --- a/gcsfs/tests/recordings/test_map_with_data.yaml +++ /dev/null @@ -1,1137 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAElKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/x"} - - --==0== - - Content-Type: application/octet-stream - - - 123 - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n - \ \"crc32c\": \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '742' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2p966wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media - response: - body: - string: '123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Type: - - application/octet-stream - Etag: - - CJ2p966wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658762929309' - X-Goog-Hash: - - crc32c=EHsvsg==,md5=ICy5YqxZB1uWSwcVLSNLcA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media - response: - body: - string: '123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Type: - - application/octet-stream - Etag: - - CJ2p966wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658762929309' - X-Goog-Hash: - - crc32c=EHsvsg==,md5=ICy5YqxZB1uWSwcVLSNLcA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media - response: - body: - string: '123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Type: - - application/octet-stream - Etag: - - CJ2p966wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658762929309' - X-Goog-Hash: - - crc32c=EHsvsg==,md5=ICy5YqxZB1uWSwcVLSNLcA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658762929309\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658762929309&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658762929309\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CJ2p966wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:22.948Z\",\n \"updated\": \"2021-05-10T14:59:22.948Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:22.948Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/x"} - - --==0== - - Content-Type: application/octet-stream - - - 000 - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658764428623\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658764428623&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658764428623\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"xvBXuGWElC5BVDX/sfqT1A==\",\n - \ \"crc32c\": \"gS9+1g==\",\n \"etag\": \"CM/q0q+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:24.499Z\",\n \"updated\": \"2021-05-10T14:59:24.499Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:24.499Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '742' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM/q0q+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media - response: - body: - string: '000' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Type: - - application/octet-stream - Etag: - - CM/q0q+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658764428623' - X-Goog-Hash: - - crc32c=gS9+1g==,md5=xvBXuGWElC5BVDX/sfqT1A== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?alt=media -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "mapping/y"} - - --==0== - - Content-Type: application/octet-stream - - - 456 - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/y/1620658764736805\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fy\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fy?generation=1620658764736805&alt=media\",\n - \ \"name\": \"mapping/y\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658764736805\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"JQz4tRx3Pz+NyLS+hnqaAg==\",\n - \ \"crc32c\": \"ZHjEjw==\",\n \"etag\": \"CKXS5a+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:24.756Z\",\n \"updated\": \"2021-05-10T14:59:24.756Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:24.756Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '742' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKXS5a+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fy?alt=media - response: - body: - string: '456' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Type: - - application/octet-stream - Etag: - - CKXS5a+wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658764736805' - X-Goog-Hash: - - crc32c=ZHjEjw==,md5=JQz4tRx3Pz+NyLS+hnqaAg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fy?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658764428623\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658764428623&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658764428623\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"xvBXuGWElC5BVDX/sfqT1A==\",\n \"crc32c\": - \"gS9+1g==\",\n \"etag\": \"CM/q0q+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:24.499Z\",\n \"updated\": \"2021-05-10T14:59:24.499Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:24.499Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/y/1620658764736805\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fy\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fy?generation=1620658764736805&alt=media\",\n - \ \"name\": \"mapping/y\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658764736805\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"JQz4tRx3Pz+NyLS+hnqaAg==\",\n \"crc32c\": - \"ZHjEjw==\",\n \"etag\": \"CKXS5a+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:24.756Z\",\n \"updated\": \"2021-05-10T14:59:24.756Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:24.756Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1687' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/x/1620658764428623\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fx\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fx?generation=1620658764428623&alt=media\",\n - \ \"name\": \"mapping/x\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658764428623\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"xvBXuGWElC5BVDX/sfqT1A==\",\n \"crc32c\": - \"gS9+1g==\",\n \"etag\": \"CM/q0q+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:24.499Z\",\n \"updated\": \"2021-05-10T14:59:24.499Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:24.499Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/mapping/y/1620658764736805\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping%2Fy\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/mapping%2Fy?generation=1620658764736805&alt=media\",\n - \ \"name\": \"mapping/y\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658764736805\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"JQz4tRx3Pz+NyLS+hnqaAg==\",\n \"crc32c\": - \"ZHjEjw==\",\n \"etag\": \"CKXS5a+wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:24.756Z\",\n \"updated\": \"2021-05-10T14:59:24.756Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:24.756Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1687' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2Fx HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/mapping%2Fy HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_X3ltrbUFu7DzGkSuvo7abIMnPOCKL38C\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 404 Not - Found\r\nContent-Type: application/json; charset=UTF-8\r\nDate: Mon, 10 May - 2021 14:59:25 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 247\r\n\r\n{\n \"error\": - {\n \"code\": 404,\n \"message\": \"No such object: gcsfs-testing/mapping\",\n - \ \"errors\": [\n {\n \"message\": \"No such object: gcsfs-testing/mapping\",\n - \ \"domain\": \"global\",\n \"reason\": \"notFound\"\n }\n - \ ]\n }\n}\n\r\n--batch_X3ltrbUFu7DzGkSuvo7abIMnPOCKL38C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:25 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_X3ltrbUFu7DzGkSuvo7abIMnPOCKL38C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:25 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_X3ltrbUFu7DzGkSuvo7abIMnPOCKL38C--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_X3ltrbUFu7DzGkSuvo7abIMnPOCKL38C - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=mapping/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/mapping\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/mapping\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/mapping -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_merge.yaml b/gcsfs/tests/recordings/test_merge.yaml deleted file mode 100644 index 1748945e..00000000 --- a/gcsfs/tests/recordings/test_merge.yaml +++ /dev/null @@ -1,498 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAA9KmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxIKalYJgdgOxXK8rRv3bUiEFndNTXOAjJFfETOFjW5UxMbM_Li_vUCwjnGBBbQAQbMyEVIHe-zyVNJOUlb5uamFqcJ1A - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: aaaaaaaaaa - headers: - Content-Length: - - '10' - Content-Range: - - bytes 0-9/10 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxIKalYJgdgOxXK8rRv3bUiEFndNTXOAjJFfETOFjW5UxMbM_Li_vUCwjnGBBbQAQbMyEVIHe-zyVNJOUlb5uamFqcJ1A - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658704225715\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658704225715&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658704225715\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"10\",\n \"md5Hash\": \"4JyAxC/aVfnZkuWcprMwfQ==\",\n - \ \"crc32c\": \"5yZkMA==\",\n \"etag\": \"CLOr+JKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:24.245Z\",\n \"updated\": \"2021-05-10T14:58:24.245Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:24.245Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '751' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLOr+JKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxIKalYJgdgOxXK8rRv3bUiEFndNTXOAjJFfETOFjW5UxMbM_Li_vUCwjnGBBbQAQbMyEVIHe-zyVNJOUlb5uamFqcJ1A -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxQeEsAUiZr6YzUMHwuPmFSAb66e5e0HEDXKOd7Ksfpay05tYaHUfCD15V_JIH2Cx4GRthrh2rbUk0XEvoy2OQN9XvmfA - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: aaaaaaaaaa - headers: - Content-Length: - - '10' - Content-Range: - - bytes 0-9/10 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxQeEsAUiZr6YzUMHwuPmFSAb66e5e0HEDXKOd7Ksfpay05tYaHUfCD15V_JIH2Cx4GRthrh2rbUk0XEvoy2OQN9XvmfA - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658704776525\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658704776525&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658704776525\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"10\",\n \"md5Hash\": \"4JyAxC/aVfnZkuWcprMwfQ==\",\n - \ \"crc32c\": \"5yZkMA==\",\n \"etag\": \"CM36mZOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:24.796Z\",\n \"updated\": \"2021-05-10T14:58:24.796Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:24.796Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '751' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM36mZOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxQeEsAUiZr6YzUMHwuPmFSAb66e5e0HEDXKOd7Ksfpay05tYaHUfCD15V_JIH2Cx4GRthrh2rbUk0XEvoy2OQN9XvmfA -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/joined/compose - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/joined/1620658704970008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/joined\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/joined?generation=1620658704970008&alt=media\",\n - \ \"name\": \"joined\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658704970008\",\n \"metageneration\": \"1\",\n \"storageClass\": \"STANDARD\",\n - \ \"size\": \"20\",\n \"crc32c\": \"gAyT5Q==\",\n \"componentCount\": 2,\n - \ \"etag\": \"CJjipZOwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:24.989Z\",\n - \ \"updated\": \"2021-05-10T14:58:24.989Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:24.989Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '664' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJjipZOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/joined/compose -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/joined - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/joined/1620658704970008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/joined\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/joined?generation=1620658704970008&alt=media\",\n - \ \"name\": \"joined\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658704970008\",\n \"metageneration\": \"1\",\n \"storageClass\": \"STANDARD\",\n - \ \"size\": \"20\",\n \"crc32c\": \"gAyT5Q==\",\n \"componentCount\": 2,\n - \ \"etag\": \"CJjipZOwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:24.989Z\",\n - \ \"updated\": \"2021-05-10T14:58:24.989Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:24.989Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '664' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJjipZOwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/joined -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/joined/1620658704970008\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/joined\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/joined?generation=1620658704970008&alt=media\",\n - \ \"name\": \"joined\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658704970008\",\n \"metageneration\": \"1\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"20\",\n \"crc32c\": \"gAyT5Q==\",\n - \ \"componentCount\": 2,\n \"etag\": \"CJjipZOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:24.989Z\",\n \"updated\": \"2021-05-10T14:58:24.989Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:24.989Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658704225715\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658704225715&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658704225715\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"10\",\n \"md5Hash\": \"4JyAxC/aVfnZkuWcprMwfQ==\",\n \"crc32c\": - \"5yZkMA==\",\n \"etag\": \"CLOr+JKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:24.245Z\",\n \"updated\": \"2021-05-10T14:58:24.245Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:24.245Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658704776525\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658704776525&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658704776525\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"10\",\n \"md5Hash\": \"4JyAxC/aVfnZkuWcprMwfQ==\",\n \"crc32c\": - \"5yZkMA==\",\n \"etag\": \"CM36mZOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:24.796Z\",\n \"updated\": \"2021-05-10T14:58:24.796Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:24.796Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '2442' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/joined HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_zodcSCGUUXBKcvQv8OwYUkpTWG__dbBI\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:25 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_zodcSCGUUXBKcvQv8OwYUkpTWG__dbBI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:25 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_zodcSCGUUXBKcvQv8OwYUkpTWG__dbBI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:25 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_zodcSCGUUXBKcvQv8OwYUkpTWG__dbBI--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_zodcSCGUUXBKcvQv8OwYUkpTWG__dbBI - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_metadata_read_permissions.yaml b/gcsfs/tests/recordings/test_metadata_read_permissions.yaml deleted file mode 100644 index 62a6a099..00000000 --- a/gcsfs/tests/recordings/test_metadata_read_permissions.yaml +++ /dev/null @@ -1,4692 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAClKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrUVfyco5aFTcWh1bmSg7+sNcYa - 8kIGE4Q4AL/As7x+lA+EinX4wf9/OT6PTYPl4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658718759453\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658718759453&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718759453\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2075mwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:38.779Z\",\n - \ \"updated\": \"2021-05-10T14:58:38.779Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:38.779Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2075mwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658718844474\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658718844474&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658718844474\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLrM9Jmwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.877Z\",\n \"updated\": \"2021-05-10T14:58:38.877Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.877Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLrM9Jmwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658718843619\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658718843619&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718843619\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"COPF9Jmwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:38.863Z\",\n - \ \"updated\": \"2021-05-10T14:58:38.863Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:38.863Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COPF9Jmwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658718872638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658718872638&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718872638\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CL6o9pmwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:38.904Z\",\n - \ \"updated\": \"2021-05-10T14:58:38.904Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:38.904Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL6o9pmwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658718898984\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658718898984&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658718898984\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKj295mwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.923Z\",\n \"updated\": \"2021-05-10T14:58:38.923Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.923Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKj295mwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658718917934\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658718917934&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658718917934\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CK6K+Zmwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.942Z\",\n \"updated\": \"2021-05-10T14:58:38.942Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.942Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK6K+Zmwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658719102076\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658719102076&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658719102076\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPyohJqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:39.121Z\",\n \"updated\": \"2021-05-10T14:58:39.121Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:39.121Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPyohJqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658719139851\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658719139851&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658719139851\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CIvQhpqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:39.159Z\",\n - \ \"updated\": \"2021-05-10T14:58:39.159Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:39.159Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIvQhpqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658719313871\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658719313871&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658719313871\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CM+fkZqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:39.333Z\",\n \"updated\": \"2021-05-10T14:58:39.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:39.333Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM+fkZqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=missing%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=missing/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/missing\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/missing\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/missing\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/missing\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=missing%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=missing/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/missing\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/missing\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/missing\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/missing\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=missing%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=missing/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/missing\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/missing\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658718917934\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658718917934&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718917934\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CK6K+Zmwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.942Z\",\n \"updated\": \"2021-05-10T14:58:38.942Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.942Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658718844474\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658718844474&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718844474\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLrM9Jmwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.877Z\",\n \"updated\": \"2021-05-10T14:58:38.877Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.877Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658719102076\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658719102076&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658719102076\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPyohJqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:39.121Z\",\n \"updated\": \"2021-05-10T14:58:39.121Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:39.121Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658719313871\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658719313871&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658719313871\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CM+fkZqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:39.333Z\",\n \"updated\": \"2021-05-10T14:58:39.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:39.333Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658718898984\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658718898984&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718898984\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKj295mwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.923Z\",\n \"updated\": \"2021-05-10T14:58:38.923Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.923Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658718872638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658718872638&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718872638\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CL6o9pmwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.904Z\",\n \"updated\": \"2021-05-10T14:58:38.904Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.904Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658718843619\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658718843619&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718843619\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COPF9Jmwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.863Z\",\n \"updated\": \"2021-05-10T14:58:38.863Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.863Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658718759453\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658718759453&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658718759453\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJ2075mwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:38.779Z\",\n \"updated\": \"2021-05-10T14:58:38.779Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:38.779Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658719139851\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658719139851&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658719139851\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIvQhpqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:39.159Z\",\n \"updated\": \"2021-05-10T14:58:39.159Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:39.159Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:40 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:40 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_Z120ETUX9OLHMbUiJNrSbojCf_NIQUl4 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAClKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hblIzd9LBFmopst5Y6wh - L2QwQYhD8Cs8y+tn+UCoWEcf/P+X4wMEC22h4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658721349660\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658721349660&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721349660\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJzAjZuwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:41.377Z\",\n - \ \"updated\": \"2021-05-10T14:58:41.377Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:41.377Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJzAjZuwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658721434961\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658721434961&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658721434961\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNHakpuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.458Z\",\n \"updated\": \"2021-05-10T14:58:41.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.458Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNHakpuwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658721452279\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658721452279&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658721452279\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CPfhk5uwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.478Z\",\n \"updated\": \"2021-05-10T14:58:41.478Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.478Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPfhk5uwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658721523431\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658721523431&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721523431\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"COeNmJuwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:41.543Z\",\n - \ \"updated\": \"2021-05-10T14:58:41.543Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:41.543Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COeNmJuwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658721593049\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658721593049&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721593049\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CNmtnJuwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:41.623Z\",\n - \ \"updated\": \"2021-05-10T14:58:41.623Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:41.623Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNmtnJuwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658721616964\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658721616964&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658721616964\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMTonZuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.637Z\",\n \"updated\": \"2021-05-10T14:58:41.637Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.637Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMTonZuwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658721699903\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658721699903&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658721699903\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL/wopuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.719Z\",\n \"updated\": \"2021-05-10T14:58:41.719Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.719Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL/wopuwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658721712528\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658721712528&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658721712528\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJDTo5uwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.743Z\",\n \"updated\": \"2021-05-10T14:58:41.743Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.743Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJDTo5uwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658722463674\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658722463674&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658722463674\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CLq/0Zuwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:42.483Z\",\n - \ \"updated\": \"2021-05-10T14:58:42.483Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:42.483Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLq/0Zuwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=missing%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=missing/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/missing\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/missing\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=missing%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=missing/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/missing\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/missing\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '247' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/missing -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=missing%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=missing/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658721434961\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658721434961&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721434961\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNHakpuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.458Z\",\n \"updated\": \"2021-05-10T14:58:41.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.458Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658721452279\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658721452279&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721452279\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CPfhk5uwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.478Z\",\n \"updated\": \"2021-05-10T14:58:41.478Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.478Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658721712528\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658721712528&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721712528\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJDTo5uwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.743Z\",\n \"updated\": \"2021-05-10T14:58:41.743Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.743Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658721616964\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658721616964&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721616964\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMTonZuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.637Z\",\n \"updated\": \"2021-05-10T14:58:41.637Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.637Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658721699903\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658721699903&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721699903\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL/wopuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.719Z\",\n \"updated\": \"2021-05-10T14:58:41.719Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.719Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658721593049\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658721593049&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721593049\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNmtnJuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.623Z\",\n \"updated\": \"2021-05-10T14:58:41.623Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.623Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658722463674\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658722463674&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658722463674\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLq/0Zuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:42.483Z\",\n \"updated\": \"2021-05-10T14:58:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658721349660\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658721349660&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721349660\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJzAjZuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.377Z\",\n \"updated\": \"2021-05-10T14:58:41.377Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.377Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658721523431\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658721523431&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721523431\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COeNmJuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.543Z\",\n \"updated\": \"2021-05-10T14:58:41.543Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.543Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAClKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658721434961\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658721434961&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721434961\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNHakpuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.458Z\",\n \"updated\": \"2021-05-10T14:58:41.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.458Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658721452279\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658721452279&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721452279\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CPfhk5uwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.478Z\",\n \"updated\": \"2021-05-10T14:58:41.478Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.478Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658721712528\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658721712528&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721712528\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJDTo5uwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.743Z\",\n \"updated\": \"2021-05-10T14:58:41.743Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.743Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658721616964\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658721616964&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721616964\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CMTonZuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.637Z\",\n \"updated\": \"2021-05-10T14:58:41.637Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.637Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658721699903\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658721699903&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721699903\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL/wopuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.719Z\",\n \"updated\": \"2021-05-10T14:58:41.719Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.719Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658721593049\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658721593049&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721593049\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNmtnJuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.623Z\",\n \"updated\": \"2021-05-10T14:58:41.623Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.623Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658722463674\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658722463674&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658722463674\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLq/0Zuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:42.483Z\",\n \"updated\": \"2021-05-10T14:58:42.483Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:42.483Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658721349660\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658721349660&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721349660\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJzAjZuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.377Z\",\n \"updated\": \"2021-05-10T14:58:41.377Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.377Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658721523431\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658721523431&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658721523431\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COeNmJuwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:41.543Z\",\n \"updated\": \"2021-05-10T14:58:41.543Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:41.543Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:43 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 404 Not Found\r\nContent-Type: application/json; charset=UTF-8\r\nDate: Mon, - 10 May 2021 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, - must-revalidate\r\nExpires: Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: - 245\r\n\r\n{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such - object: gcsfs-testing/nested\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/nested\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 404 Not Found\r\nContent-Type: application/json; charset=UTF-8\r\nDate: Mon, - 10 May 2021 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, - must-revalidate\r\nExpires: Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: - 261\r\n\r\n{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such - object: gcsfs-testing/nested/nested2\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/nested/nested2\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 404 Not Found\r\nContent-Type: application/json; charset=UTF-8\r\nDate: Mon, - 10 May 2021 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, - must-revalidate\r\nExpires: Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: - 241\r\n\r\n{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such - object: gcsfs-testing/test\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/test\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:43 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_KyrwsnJTyvBtgTa0kAN2ZZIsl2aIiYhA - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - application/json - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 204 - message: No Content - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing\",\n - \ \"id\": \"gcsfs-testing\",\n \"name\": \"gcsfs-testing\",\n \"projectNumber\": - \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": \"US\",\n - \ \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.323Z\",\n \"updated\": \"2021-05-10T14:58:44.323Z\",\n - \ \"acl\": [\n {\n \"kind\": \"storage#bucketAccessControl\",\n \"id\": - \"gcsfs-testing/project-owners-586241054156\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/acl/project-owners-586241054156\",\n - \ \"bucket\": \"gcsfs-testing\",\n \"entity\": \"project-owners-586241054156\",\n - \ \"role\": \"OWNER\",\n \"etag\": \"CAE=\",\n \"projectTeam\": - {\n \"projectNumber\": \"586241054156\",\n \"team\": \"owners\"\n - \ }\n },\n {\n \"kind\": \"storage#bucketAccessControl\",\n - \ \"id\": \"gcsfs-testing/allUsers\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/acl/allUsers\",\n - \ \"bucket\": \"gcsfs-testing\",\n \"entity\": \"allUsers\",\n \"role\": - \"WRITER\",\n \"etag\": \"CAE=\"\n }\n ],\n \"defaultObjectAcl\": - [\n {\n \"kind\": \"storage#objectAccessControl\",\n \"entity\": - \"allAuthenticatedUsers\",\n \"role\": \"READER\",\n \"etag\": \"CAE=\"\n - \ }\n ],\n \"owner\": {\n \"entity\": \"project-owners-586241054156\"\n - \ },\n \"iamConfiguration\": {\n \"bucketPolicyOnly\": {\n \"enabled\": - false\n },\n \"uniformBucketLevelAccess\": {\n \"enabled\": false\n - \ }\n },\n \"locationType\": \"multi-region\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1524' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658724539750\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658724539750&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724539750\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COaa0Jywv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:44.559Z\",\n - \ \"updated\": \"2021-05-10T14:58:44.559Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:44.559Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COaa0Jywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658724629073\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658724629073&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724629073\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CNHU1Zywv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:44.648Z\",\n - \ \"updated\": \"2021-05-10T14:58:44.648Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:44.648Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNHU1Zywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658724633387\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658724633387&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724633387\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKv21Zywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.662Z\",\n \"updated\": \"2021-05-10T14:58:44.662Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.662Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKv21Zywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658724713385\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658724713385&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724713385\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKnn2pywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.740Z\",\n \"updated\": \"2021-05-10T14:58:44.740Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.740Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKnn2pywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658724729728\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658724729728&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724729728\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CIDn25ywv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:44.757Z\",\n - \ \"updated\": \"2021-05-10T14:58:44.757Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:44.757Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIDn25ywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658724734457\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658724734457&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724734457\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CPmL3Jywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.763Z\",\n \"updated\": \"2021-05-10T14:58:44.763Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.763Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPmL3Jywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658724831348\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658724831348&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724831348\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPSA4pywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.851Z\",\n \"updated\": \"2021-05-10T14:58:44.851Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.851Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPSA4pywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658724933133\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658724933133&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724933133\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CI2c6Jywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.952Z\",\n \"updated\": \"2021-05-10T14:58:44.952Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.952Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI2c6Jywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658726334425\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658726334425&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658726334425\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CNnfvZ2wv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:46.354Z\",\n - \ \"updated\": \"2021-05-10T14:58:46.354Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:46.354Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNnfvZ2wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=2014-01-01.csv%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=2014-01-01.csv/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658724713385\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658724713385&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724713385\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKnn2pywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.740Z\",\n \"updated\": \"2021-05-10T14:58:44.740Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.740Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKnn2pywv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658724713385\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658724713385&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724713385\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKnn2pywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.740Z\",\n \"updated\": \"2021-05-10T14:58:44.740Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.740Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKnn2pywv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658724713385\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658724713385&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658724713385\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKnn2pywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.740Z\",\n \"updated\": \"2021-05-10T14:58:44.740Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.740Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKnn2pywv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658724713385\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658724713385&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724713385\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CKnn2pywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.740Z\",\n \"updated\": \"2021-05-10T14:58:44.740Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.740Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658724734457\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658724734457&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724734457\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CPmL3Jywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.763Z\",\n \"updated\": \"2021-05-10T14:58:44.763Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.763Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658724933133\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658724933133&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724933133\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CI2c6Jywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.952Z\",\n \"updated\": \"2021-05-10T14:58:44.952Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.952Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658724633387\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658724633387&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724633387\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKv21Zywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.662Z\",\n \"updated\": \"2021-05-10T14:58:44.662Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.662Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658724831348\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658724831348&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724831348\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPSA4pywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.851Z\",\n \"updated\": \"2021-05-10T14:58:44.851Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.851Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658724729728\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658724729728&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724729728\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIDn25ywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.757Z\",\n \"updated\": \"2021-05-10T14:58:44.757Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.757Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658726334425\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658726334425&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658726334425\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNnfvZ2wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:46.354Z\",\n \"updated\": \"2021-05-10T14:58:46.354Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:46.354Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658724539750\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658724539750&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724539750\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COaa0Jywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.559Z\",\n \"updated\": \"2021-05-10T14:58:44.559Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.559Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658724629073\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658724629073&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658724629073\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CNHU1Zywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:44.648Z\",\n \"updated\": \"2021-05-10T14:58:44.648Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:44.648Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:49 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_O2pm9CLGbi3apZNGdcGOGA8imO_-NhTU - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIACtKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrUVfyco5aFTcWh1bmSg7+sNcYa - 8kIGE4Q4AL/As7x+lA+EinX4wf9/OT6PTYPl4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658732229087\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658732229087&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732229087\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CN/DpaCwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:52.249Z\",\n - \ \"updated\": \"2021-05-10T14:58:52.249Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:52.249Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN/DpaCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658732327724\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658732327724&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732327724\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKzGq6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.347Z\",\n \"updated\": \"2021-05-10T14:58:52.347Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.347Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKzGq6Cwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658732330147\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658732330147&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732330147\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CKPZq6Cwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:52.361Z\",\n - \ \"updated\": \"2021-05-10T14:58:52.361Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:52.361Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKPZq6Cwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658732331348\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658732331348&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732331348\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CNTiq6Cwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:52.364Z\",\n - \ \"updated\": \"2021-05-10T14:58:52.364Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:52.364Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNTiq6Cwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658732333550\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658732333550&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732333550\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CO7zq6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.365Z\",\n \"updated\": \"2021-05-10T14:58:52.365Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.365Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO7zq6Cwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658732438330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658732438330&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732438330\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLqmsqCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.458Z\",\n \"updated\": \"2021-05-10T14:58:52.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.458Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLqmsqCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658732449918\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658732449918&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732449918\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CP6As6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.482Z\",\n \"updated\": \"2021-05-10T14:58:52.482Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.482Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP6As6Cwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658732538992\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658732538992&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732538992\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPC4uKCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.558Z\",\n \"updated\": \"2021-05-10T14:58:52.558Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.558Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPC4uKCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658732933975\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658732933975&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732933975\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CNfG0KCwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:52.954Z\",\n - \ \"updated\": \"2021-05-10T14:58:52.954Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:52.954Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNfG0KCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=2014-01-01.csv%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=2014-01-01.csv/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658732438330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658732438330&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732438330\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLqmsqCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.458Z\",\n \"updated\": \"2021-05-10T14:58:52.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.458Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLqmsqCwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658732438330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658732438330&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732438330\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLqmsqCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.458Z\",\n \"updated\": \"2021-05-10T14:58:52.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.458Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLqmsqCwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658732438330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658732438330&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658732438330\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLqmsqCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.458Z\",\n \"updated\": \"2021-05-10T14:58:52.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.458Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLqmsqCwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658732438330\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658732438330&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732438330\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CLqmsqCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.458Z\",\n \"updated\": \"2021-05-10T14:58:52.458Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.458Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658732333550\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658732333550&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732333550\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CO7zq6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.365Z\",\n \"updated\": \"2021-05-10T14:58:52.365Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.365Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658732538992\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658732538992&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732538992\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CPC4uKCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.558Z\",\n \"updated\": \"2021-05-10T14:58:52.558Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.558Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658732449918\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658732449918&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732449918\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CP6As6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.482Z\",\n \"updated\": \"2021-05-10T14:58:52.482Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.482Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658732327724\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658732327724&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732327724\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKzGq6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.347Z\",\n \"updated\": \"2021-05-10T14:58:52.347Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.347Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658732331348\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658732331348&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732331348\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNTiq6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.364Z\",\n \"updated\": \"2021-05-10T14:58:52.364Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.364Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658732933975\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658732933975&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732933975\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNfG0KCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.954Z\",\n \"updated\": \"2021-05-10T14:58:52.954Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.954Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658732229087\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658732229087&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732229087\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CN/DpaCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.249Z\",\n \"updated\": \"2021-05-10T14:58:52.249Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.249Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658732330147\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658732330147&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658732330147\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CKPZq6Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:52.361Z\",\n \"updated\": \"2021-05-10T14:58:52.361Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:52.361Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:54 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:54 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_Fy08diWm2WQ-V2m9yBxFeTcof9G6ffVa - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_move.yaml b/gcsfs/tests/recordings/test_move.yaml deleted file mode 100644 index fc326e1e..00000000 --- a/gcsfs/tests/recordings/test_move.yaml +++ /dev/null @@ -1,1252 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAMFJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658626238501\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658626238501&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626238501\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CKWw4O2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:06.258Z\",\n - \ \"updated\": \"2021-05-10T14:57:06.258Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:06.258Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKWw4O2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658626309658\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658626309658&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658626309658\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJrc5O2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.340Z\",\n \"updated\": \"2021-05-10T14:57:06.340Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.340Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJrc5O2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658626334350\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658626334350&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626334350\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CI6d5u2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:06.355Z\",\n - \ \"updated\": \"2021-05-10T14:57:06.355Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:06.355Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI6d5u2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658626349824\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658626349824&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658626349824\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CICW5+2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.378Z\",\n \"updated\": \"2021-05-10T14:57:06.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.378Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CICW5+2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658626397245\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658626397245&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626397245\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CL2I6u2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:06.417Z\",\n - \ \"updated\": \"2021-05-10T14:57:06.417Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:06.417Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL2I6u2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658626469895\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658626469895&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626469895\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CIfA7u2vv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:06.490Z\",\n - \ \"updated\": \"2021-05-10T14:57:06.490Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:06.490Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIfA7u2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658626478803\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658626478803&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658626478803\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNOF7+2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.503Z\",\n \"updated\": \"2021-05-10T14:57:06.503Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.503Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNOF7+2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658626484871\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658626484871&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658626484871\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIe17+2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.513Z\",\n \"updated\": \"2021-05-10T14:57:06.513Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.513Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIe17+2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658626912667\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658626912667&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658626912667\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJvDie6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.932Z\",\n \"updated\": \"2021-05-10T14:57:06.932Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.932Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJvDie6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CKWw4O2vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658626238501' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: - Content-Type: - - application/json - method: POST - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/test%2Faccounts.1.json2 - response: - body: - string: "{\n \"kind\": \"storage#rewriteResponse\",\n \"totalBytesRewritten\": - \"133\",\n \"objectSize\": \"133\",\n \"done\": true,\n \"resource\": {\n - \ \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json2/1620658627151718\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?generation=1620658627151718&alt=media\",\n - \ \"name\": \"test/accounts.1.json2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658627151718\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COaOmO6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:07.171Z\",\n \"updated\": \"2021-05-10T14:57:07.171Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:07.171Z\",\n \"owner\": - {\n \"entity\": \"user-mdurant@anaconda.com\"\n }\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1020' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json/rewriteTo/b/gcsfs-testing/o/test%2Faccounts.1.json2 -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_uYDk4dUgIzBz-zEVhuFAbEHHzZLtm-Qr\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:07 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_uYDk4dUgIzBz-zEVhuFAbEHHzZLtm-Qr--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_uYDk4dUgIzBz-zEVhuFAbEHHzZLtm-Qr - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - COaOmO6vv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658627151718' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test/accounts.1.json\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/test/accounts.1.json\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '273' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2Faccounts.1.json%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/accounts.1.json/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/test/accounts.1.json\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/test/accounts.1.json\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '273' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658626309658\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658626309658&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626309658\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJrc5O2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.340Z\",\n \"updated\": \"2021-05-10T14:57:06.340Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.340Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658626349824\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658626349824&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626349824\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CICW5+2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.378Z\",\n \"updated\": \"2021-05-10T14:57:06.378Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.378Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658626912667\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658626912667&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626912667\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJvDie6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.932Z\",\n \"updated\": \"2021-05-10T14:57:06.932Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.932Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658626484871\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658626484871&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626484871\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIe17+2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.513Z\",\n \"updated\": \"2021-05-10T14:57:06.513Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.513Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658626478803\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658626478803&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626478803\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNOF7+2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.503Z\",\n \"updated\": \"2021-05-10T14:57:06.503Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.503Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658626334350\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658626334350&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626334350\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CI6d5u2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.355Z\",\n \"updated\": \"2021-05-10T14:57:06.355Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.355Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658626469895\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658626469895&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626469895\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIfA7u2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.490Z\",\n \"updated\": \"2021-05-10T14:57:06.490Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.490Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json2/1620658627151718\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2?generation=1620658627151718&alt=media\",\n - \ \"name\": \"test/accounts.1.json2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658627151718\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COaOmO6vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:07.171Z\",\n \"updated\": \"2021-05-10T14:57:07.171Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:07.171Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658626397245\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658626397245&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658626397245\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CL2I6u2vv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:06.417Z\",\n \"updated\": \"2021-05-10T14:57:06.417Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:06.417Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7687' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:07 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:07 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:07 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:07 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:07 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:07 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:07 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:07 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_T4MlSQ9WbCUY7m4n-oErRtL2k5wqpvgS - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_multi_upload.yaml b/gcsfs/tests/recordings/test_multi_upload.yaml deleted file mode 100644 index 448f9073..00000000 --- a/gcsfs/tests/recordings/test_multi_upload.yaml +++ /dev/null @@ -1,1249 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAIJJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLhqM1yzJ8j1I40wpZb84Isye8ajWTkSZDAbMs5PaOkHkbr_LRYjWdsIz6YzFdhnWvnM0rrVgqJ3LjKJ3FoQFOHoQtpg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: xx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 0-262143/* - Content-Type: - - text/plain - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLhqM1yzJ8j1I40wpZb84Isye8ajWTkSZDAbMs5PaOkHkbr_LRYjWdsIz6YzFdhnWvnM0rrVgqJ3LjKJ3FoQFOHoQtpg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - e7133172f24d32e27741a2e269ea6f78 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLhqM1yzJ8j1I40wpZb84Isye8ajWTkSZDAbMs5PaOkHkbr_LRYjWdsIz6YzFdhnWvnM0rrVgqJ3LjKJ3FoQFOHoQtpg -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 0-262143/* - Content-Type: - - text/plain - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLhqM1yzJ8j1I40wpZb84Isye8ajWTkSZDAbMs5PaOkHkbr_LRYjWdsIz6YzFdhnWvnM0rrVgqJ3LjKJ3FoQFOHoQtpg - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - e7133172f24d32e27741a2e269ea6f78 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLhqM1yzJ8j1I40wpZb84Isye8ajWTkSZDAbMs5PaOkHkbr_LRYjWdsIz6YzFdhnWvnM0rrVgqJ3LjKJ3FoQFOHoQtpg -- request: - body: xx - headers: - Content-Length: - - '2' - Content-Range: - - bytes 262144-262145/262146 - Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLhqM1yzJ8j1I40wpZb84Isye8ajWTkSZDAbMs5PaOkHkbr_LRYjWdsIz6YzFdhnWvnM0rrVgqJ3LjKJ3FoQFOHoQtpg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658565020070\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658565020070&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658565020070\",\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262146\",\n \"md5Hash\": - \"CrZCnRosp/P9qFxfaMsuLQ==\",\n \"crc32c\": \"1JCIRw==\",\n \"etag\": \"CKbzx9Cvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:05.040Z\",\n \"updated\": \"2021-05-10T14:56:05.040Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:05.040Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '709' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKbzx9Cvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLhqM1yzJ8j1I40wpZb84Isye8ajWTkSZDAbMs5PaOkHkbr_LRYjWdsIz6YzFdhnWvnM0rrVgqJ3LjKJ3FoQFOHoQtpg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media - response: - body: - string: 0123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567xx - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '262146' - Content-Type: - - text/plain - Etag: - - CKbzx9Cvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658565020070' - X-Goog-Hash: - - crc32c=1JCIRw==,md5=CrZCnRosp/P9qFxfaMsuLQ== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658565020070\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658565020070&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658565020070\",\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262146\",\n \"md5Hash\": - \"CrZCnRosp/P9qFxfaMsuLQ==\",\n \"crc32c\": \"1JCIRw==\",\n \"etag\": \"CKbzx9Cvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:05.040Z\",\n \"updated\": \"2021-05-10T14:56:05.040Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:05.040Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '709' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKbzx9Cvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: - X-Upload-Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwIF7e8itjHZK_O2NuRQMgN8pjBbNJdz2QDuslQfjp0XIq6iZfLoIsBUSkeeK2wt4YvZBaPYnskKx5KoeAGz9vBHzB98Q - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '67' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '524290' - Content-Range: - - bytes 0-524289/* - Content-Type: - - text/plain - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwIF7e8itjHZK_O2NuRQMgN8pjBbNJdz2QDuslQfjp0XIq6iZfLoIsBUSkeeK2wt4YvZBaPYnskKx5KoeAGz9vBHzB98Q - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-524287 - Server: - - UploadServer - X-Range-MD5: - - 124db0b22a9d5fcc2a6b6af597f3a607 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwIF7e8itjHZK_O2NuRQMgN8pjBbNJdz2QDuslQfjp0XIq6iZfLoIsBUSkeeK2wt4YvZBaPYnskKx5KoeAGz9vBHzB98Q -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '524290' - Content-Range: - - bytes 0-524289/* - Content-Type: - - text/plain - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwIF7e8itjHZK_O2NuRQMgN8pjBbNJdz2QDuslQfjp0XIq6iZfLoIsBUSkeeK2wt4YvZBaPYnskKx5KoeAGz9vBHzB98Q - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-524287 - Server: - - UploadServer - X-Range-MD5: - - 124db0b22a9d5fcc2a6b6af597f3a607 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwIF7e8itjHZK_O2NuRQMgN8pjBbNJdz2QDuslQfjp0XIq6iZfLoIsBUSkeeK2wt4YvZBaPYnskKx5KoeAGz9vBHzB98Q -- request: - body: '67' - headers: - Content-Length: - - '2' - Content-Range: - - bytes 524288-524289/524290 - Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwIF7e8itjHZK_O2NuRQMgN8pjBbNJdz2QDuslQfjp0XIq6iZfLoIsBUSkeeK2wt4YvZBaPYnskKx5KoeAGz9vBHzB98Q - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658566586190\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658566586190&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658566586190\",\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"524290\",\n \"md5Hash\": - \"QacmS2pIJaTa732O7aJBDA==\",\n \"crc32c\": \"hcyHHw==\",\n \"etag\": \"CM6+p9Gvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:06.656Z\",\n \"updated\": \"2021-05-10T14:56:06.656Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:06.656Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '709' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM6+p9Gvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwIF7e8itjHZK_O2NuRQMgN8pjBbNJdz2QDuslQfjp0XIq6iZfLoIsBUSkeeK2wt4YvZBaPYnskKx5KoeAGz9vBHzB98Q -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media - response: - body: - string: 0123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567xx0123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567 - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '524290' - Content-Type: - - text/plain - Etag: - - CM6+p9Gvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658566586190' - X-Goog-Hash: - - crc32c=hcyHHw==,md5=QacmS2pIJaTa732O7aJBDA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658566586190\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658566586190&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658566586190\",\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"524290\",\n \"md5Hash\": - \"QacmS2pIJaTa732O7aJBDA==\",\n \"crc32c\": \"hcyHHw==\",\n \"etag\": \"CM6+p9Gvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:06.656Z\",\n \"updated\": \"2021-05-10T14:56:06.656Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:06.656Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '709' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM6+p9Gvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658566586190\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658566586190&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658566586190\",\n \"metageneration\": \"1\",\n \"contentType\": - \"text/plain\",\n \"storageClass\": \"STANDARD\",\n \"size\": \"524290\",\n - \ \"md5Hash\": \"QacmS2pIJaTa732O7aJBDA==\",\n \"crc32c\": \"hcyHHw==\",\n - \ \"etag\": \"CM6+p9Gvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:06.656Z\",\n - \ \"updated\": \"2021-05-10T14:56:06.656Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:06.656Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '835' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_qltNLDYFcSzaSoZMRYwmh7aR4Z-6r5rU\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:07 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_qltNLDYFcSzaSoZMRYwmh7aR4Z-6r5rU--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_qltNLDYFcSzaSoZMRYwmh7aR4Z-6r5rU - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwVbtt3vO2Cma1UCh8mZkUd0ZXBJdlzHdGxDwIEnMfaj_DaU4BJ1fJc53kZ6zj5az_3TAx7_pNA30eUqmfGhS53k9s9Gw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: xx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 0-262143/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwVbtt3vO2Cma1UCh8mZkUd0ZXBJdlzHdGxDwIEnMfaj_DaU4BJ1fJc53kZ6zj5az_3TAx7_pNA30eUqmfGhS53k9s9Gw - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - e7133172f24d32e27741a2e269ea6f78 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwVbtt3vO2Cma1UCh8mZkUd0ZXBJdlzHdGxDwIEnMfaj_DaU4BJ1fJc53kZ6zj5az_3TAx7_pNA30eUqmfGhS53k9s9Gw -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262144' - Content-Range: - - bytes 0-262143/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwVbtt3vO2Cma1UCh8mZkUd0ZXBJdlzHdGxDwIEnMfaj_DaU4BJ1fJc53kZ6zj5az_3TAx7_pNA30eUqmfGhS53k9s9Gw - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - e7133172f24d32e27741a2e269ea6f78 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwVbtt3vO2Cma1UCh8mZkUd0ZXBJdlzHdGxDwIEnMfaj_DaU4BJ1fJc53kZ6zj5az_3TAx7_pNA30eUqmfGhS53k9s9Gw -- request: - body: xx - headers: - Content-Length: - - '2' - Content-Range: - - bytes 262144-262145/262146 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwVbtt3vO2Cma1UCh8mZkUd0ZXBJdlzHdGxDwIEnMfaj_DaU4BJ1fJc53kZ6zj5az_3TAx7_pNA30eUqmfGhS53k9s9Gw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658568596611\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658568596611&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658568596611\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262146\",\n \"md5Hash\": - \"CrZCnRosp/P9qFxfaMsuLQ==\",\n \"crc32c\": \"1JCIRw==\",\n \"etag\": \"CIOZotKvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:08.616Z\",\n \"updated\": \"2021-05-10T14:56:08.616Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:08.616Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '723' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIOZotKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwVbtt3vO2Cma1UCh8mZkUd0ZXBJdlzHdGxDwIEnMfaj_DaU4BJ1fJc53kZ6zj5az_3TAx7_pNA30eUqmfGhS53k9s9Gw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media - response: - body: - string: 0123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567xx - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '262146' - Content-Type: - - application/octet-stream - Etag: - - CIOZotKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658568596611' - X-Goog-Hash: - - crc32c=1JCIRw==,md5=CrZCnRosp/P9qFxfaMsuLQ== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658568596611\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658568596611&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658568596611\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262146\",\n \"md5Hash\": - \"CrZCnRosp/P9qFxfaMsuLQ==\",\n \"crc32c\": \"1JCIRw==\",\n \"etag\": \"CIOZotKvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:08.616Z\",\n \"updated\": \"2021-05-10T14:56:08.616Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:08.616Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '723' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIOZotKvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLV_bVrXHEjDW--UWDXdezbxXMt_El2aaQpLt23Fq-ZcVEIrJ6wYeAmPZxyKhVZ-V-aeny_nGpyHuSeFXvQ8vRaBqqng - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '67' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '524290' - Content-Range: - - bytes 0-524289/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLV_bVrXHEjDW--UWDXdezbxXMt_El2aaQpLt23Fq-ZcVEIrJ6wYeAmPZxyKhVZ-V-aeny_nGpyHuSeFXvQ8vRaBqqng - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-524287 - Server: - - UploadServer - X-Range-MD5: - - 124db0b22a9d5fcc2a6b6af597f3a607 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLV_bVrXHEjDW--UWDXdezbxXMt_El2aaQpLt23Fq-ZcVEIrJ6wYeAmPZxyKhVZ-V-aeny_nGpyHuSeFXvQ8vRaBqqng -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '524290' - Content-Range: - - bytes 0-524289/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLV_bVrXHEjDW--UWDXdezbxXMt_El2aaQpLt23Fq-ZcVEIrJ6wYeAmPZxyKhVZ-V-aeny_nGpyHuSeFXvQ8vRaBqqng - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-524287 - Server: - - UploadServer - X-Range-MD5: - - 124db0b22a9d5fcc2a6b6af597f3a607 - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLV_bVrXHEjDW--UWDXdezbxXMt_El2aaQpLt23Fq-ZcVEIrJ6wYeAmPZxyKhVZ-V-aeny_nGpyHuSeFXvQ8vRaBqqng -- request: - body: '67' - headers: - Content-Length: - - '2' - Content-Range: - - bytes 524288-524289/524290 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLV_bVrXHEjDW--UWDXdezbxXMt_El2aaQpLt23Fq-ZcVEIrJ6wYeAmPZxyKhVZ-V-aeny_nGpyHuSeFXvQ8vRaBqqng - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658569770703\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658569770703&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658569770703\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"524290\",\n \"md5Hash\": - \"QacmS2pIJaTa732O7aJBDA==\",\n \"crc32c\": \"hcyHHw==\",\n \"etag\": \"CM/t6dKvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:09.841Z\",\n \"updated\": \"2021-05-10T14:56:09.841Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:09.841Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '723' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM/t6dKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzLV_bVrXHEjDW--UWDXdezbxXMt_El2aaQpLt23Fq-ZcVEIrJ6wYeAmPZxyKhVZ-V-aeny_nGpyHuSeFXvQ8vRaBqqng -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media - response: - body: - string: 0123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567xx0123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567 - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '524290' - Content-Type: - - application/octet-stream - Etag: - - CM/t6dKvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658569770703' - X-Goog-Hash: - - crc32c=hcyHHw==,md5=QacmS2pIJaTa732O7aJBDA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658569770703\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658569770703&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658569770703\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"524290\",\n \"md5Hash\": - \"QacmS2pIJaTa732O7aJBDA==\",\n \"crc32c\": \"hcyHHw==\",\n \"etag\": \"CM/t6dKvv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:56:09.841Z\",\n \"updated\": \"2021-05-10T14:56:09.841Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:09.841Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '723' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM/t6dKvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658569770703\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658569770703&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658569770703\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"524290\",\n \"md5Hash\": \"QacmS2pIJaTa732O7aJBDA==\",\n \"crc32c\": - \"hcyHHw==\",\n \"etag\": \"CM/t6dKvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:09.841Z\",\n \"updated\": \"2021-05-10T14:56:09.841Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:09.841Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '849' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_vddBGXqeMLkYYmJU9aoVlDwmhiLJ3Bny\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:10 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_vddBGXqeMLkYYmJU9aoVlDwmhiLJ3Bny--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_vddBGXqeMLkYYmJU9aoVlDwmhiLJ3Bny - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_new_bucket.yaml b/gcsfs/tests/recordings/test_new_bucket.yaml deleted file mode 100644 index 94d5f602..00000000 --- a/gcsfs/tests/recordings/test_new_bucket.yaml +++ /dev/null @@ -1,395 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAFdKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1Ujl4dUW5SM3fSwRZqKbL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg9b1v+I4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"Not Found\",\n - \ \"errors\": [\n {\n \"message\": \"Not Found\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '193' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/?delimiter=%2F - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"Not Found\",\n - \ \"errors\": [\n {\n \"message\": \"Not Found\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '193' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/?delimiter=/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/?delimiter=%2F - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"Not Found\",\n - \ \"errors\": [\n {\n \"message\": \"Not Found\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '193' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=projectPrivate&predefinedDefaultObjectAcl=bucketOwnerFullControl&project=test_project - response: - body: - string: "{\n \"kind\": \"storage#bucket\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket\",\n - \ \"id\": \"gcsfs-testingnew-bucket\",\n \"name\": \"gcsfs-testingnew-bucket\",\n - \ \"projectNumber\": \"586241054156\",\n \"metageneration\": \"1\",\n \"location\": - \"US\",\n \"storageClass\": \"STANDARD\",\n \"etag\": \"CAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:36.637Z\",\n \"updated\": \"2021-05-10T14:59:36.637Z\",\n - \ \"acl\": [\n {\n \"kind\": \"storage#bucketAccessControl\",\n \"id\": - \"gcsfs-testingnew-bucket/project-owners-586241054156\",\n \"selfLink\": - \"https://www.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/acl/project-owners-586241054156\",\n - \ \"bucket\": \"gcsfs-testingnew-bucket\",\n \"entity\": \"project-owners-586241054156\",\n - \ \"role\": \"OWNER\",\n \"etag\": \"CAE=\",\n \"projectTeam\": - {\n \"projectNumber\": \"586241054156\",\n \"team\": \"owners\"\n - \ }\n },\n {\n \"kind\": \"storage#bucketAccessControl\",\n - \ \"id\": \"gcsfs-testingnew-bucket/project-editors-586241054156\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/acl/project-editors-586241054156\",\n - \ \"bucket\": \"gcsfs-testingnew-bucket\",\n \"entity\": \"project-editors-586241054156\",\n - \ \"role\": \"OWNER\",\n \"etag\": \"CAE=\",\n \"projectTeam\": - {\n \"projectNumber\": \"586241054156\",\n \"team\": \"editors\"\n - \ }\n },\n {\n \"kind\": \"storage#bucketAccessControl\",\n - \ \"id\": \"gcsfs-testingnew-bucket/project-viewers-586241054156\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/acl/project-viewers-586241054156\",\n - \ \"bucket\": \"gcsfs-testingnew-bucket\",\n \"entity\": \"project-viewers-586241054156\",\n - \ \"role\": \"READER\",\n \"etag\": \"CAE=\",\n \"projectTeam\": - {\n \"projectNumber\": \"586241054156\",\n \"team\": \"viewers\"\n - \ }\n }\n ],\n \"defaultObjectAcl\": [\n {\n \"kind\": \"storage#objectAccessControl\",\n - \ \"entity\": \"project-owners-586241054156\",\n \"role\": \"OWNER\",\n - \ \"etag\": \"CAE=\",\n \"projectTeam\": {\n \"projectNumber\": - \"586241054156\",\n \"team\": \"owners\"\n }\n }\n ],\n \"owner\": - {\n \"entity\": \"project-owners-586241054156\"\n },\n \"iamConfiguration\": - {\n \"bucketPolicyOnly\": {\n \"enabled\": false\n },\n \"uniformBucketLevelAccess\": - {\n \"enabled\": false\n }\n },\n \"locationType\": \"multi-region\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2351' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=projectPrivate&project=test_project&predefinedDefaultObjectAcl=bucketOwnerFullControl -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/?prefix=new-directory%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/?prefix=new-directory/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/new-directory - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testingnew-bucket/new-directory\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testingnew-bucket/new-directory\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '279' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket/o/new-directory -- request: - body: null - headers: {} - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - application/json - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 204 - message: No Content - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testingnew-bucket -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_next.yaml b/gcsfs/tests/recordings/test_next.yaml deleted file mode 100644 index 9da7a0d8..00000000 --- a/gcsfs/tests/recordings/test_next.yaml +++ /dev/null @@ -1,1060 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAZKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658695072098\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658695072098&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695072098\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COLSyY6wv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:15.092Z\",\n - \ \"updated\": \"2021-05-10T14:58:15.092Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:15.092Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COLSyY6wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658695152805\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658695152805&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658695152805\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKXJzo6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.181Z\",\n \"updated\": \"2021-05-10T14:58:15.181Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.181Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKXJzo6wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658695156360\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658695156360&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695156360\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CIjlzo6wv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:15.186Z\",\n - \ \"updated\": \"2021-05-10T14:58:15.186Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:15.186Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIjlzo6wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658695160585\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658695160585&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695160585\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CImGz46wv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:15.190Z\",\n - \ \"updated\": \"2021-05-10T14:58:15.190Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:15.190Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CImGz46wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658695174622\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658695174622&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658695174622\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CN7zz46wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.204Z\",\n \"updated\": \"2021-05-10T14:58:15.204Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.204Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN7zz46wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658695282689\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658695282689&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658695282689\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIHA1o6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.302Z\",\n \"updated\": \"2021-05-10T14:58:15.302Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.302Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIHA1o6wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658695318845\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658695318845&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658695318845\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL3a2I6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.338Z\",\n \"updated\": \"2021-05-10T14:58:15.338Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.338Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL3a2I6wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658695328410\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658695328410&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658695328410\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJql2Y6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.353Z\",\n \"updated\": \"2021-05-10T14:58:15.353Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.353Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJql2Y6wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658695417207\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658695417207&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695417207\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CPfa3o6wv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:15.437Z\",\n - \ \"updated\": \"2021-05-10T14:58:15.437Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:15.437Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPfa3o6wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658695174622\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658695174622&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658695174622\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CN7zz46wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.204Z\",\n \"updated\": \"2021-05-10T14:58:15.204Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.204Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN7zz46wv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: - Range: - - bytes=0-50 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658695174622 - response: - body: - string: 'name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '51' - Content-Range: - - bytes 0-50/51 - Content-Type: - - application/octet-stream - Etag: - - CN7zz46wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658695174622' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658695174622&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658695174622\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658695174622&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695174622\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CN7zz46wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.204Z\",\n \"updated\": \"2021-05-10T14:58:15.204Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.204Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658695152805\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658695152805&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695152805\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CKXJzo6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.181Z\",\n \"updated\": \"2021-05-10T14:58:15.181Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.181Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658695328410\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658695328410&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695328410\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJql2Y6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.353Z\",\n \"updated\": \"2021-05-10T14:58:15.353Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.353Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658695282689\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658695282689&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695282689\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIHA1o6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.302Z\",\n \"updated\": \"2021-05-10T14:58:15.302Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.302Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658695318845\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658695318845&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695318845\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL3a2I6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.338Z\",\n \"updated\": \"2021-05-10T14:58:15.338Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.338Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658695417207\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658695417207&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695417207\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CPfa3o6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.437Z\",\n \"updated\": \"2021-05-10T14:58:15.437Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.437Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658695156360\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658695156360&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695156360\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIjlzo6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.186Z\",\n \"updated\": \"2021-05-10T14:58:15.186Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.186Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658695072098\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658695072098&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695072098\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COLSyY6wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.092Z\",\n \"updated\": \"2021-05-10T14:58:15.092Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.092Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658695160585\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658695160585&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658695160585\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CImGz46wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:15.190Z\",\n \"updated\": \"2021-05-10T14:58:15.190Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:15.190Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:15 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:15 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_5YCQbeXl94Ws4E1IsYxYWVg8IqWSSTUh - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_percent_file_name.yaml b/gcsfs/tests/recordings/test_percent_file_name.yaml deleted file mode 100644 index 54395f2b..00000000 --- a/gcsfs/tests/recordings/test_percent_file_name.yaml +++ /dev/null @@ -1,515 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAEpHS2EC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdvgljm7QmR1nEoJo6wnbkAT5oYDhhlpdx4w4UVw6OEezntp0X5jch87iTkdyzs9rHnguZbl-pKYF6YANyG4WrY - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: zz - headers: - Content-Length: - - '2' - Content-Range: - - bytes 0-1/2 - Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdvgljm7QmR1nEoJo6wnbkAT5oYDhhlpdx4w4UVw6OEezntp0X5jch87iTkdyzs9rHnguZbl-pKYF6YANyG4WrY - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/onefile/a%25.txt/1632323404065358\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt?generation=1632323404065358&alt=media\",\n - \ \"name\": \"test/onefile/a%25.txt\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1632323404065358\",\n \"metageneration\": \"1\",\n \"contentType\": - \"text/plain\",\n \"storageClass\": \"STANDARD\",\n \"size\": \"2\",\n \"md5Hash\": - \"Je0by0I7C3IA9IX8X/ccjg==\",\n \"crc32c\": \"7hMsNg==\",\n \"etag\": \"CM7UocXukvMCEAE=\",\n - \ \"timeCreated\": \"2021-09-22T15:10:04.097Z\",\n \"updated\": \"2021-09-22T15:10:04.097Z\",\n - \ \"timeStorageClassUpdated\": \"2021-09-22T15:10:04.097Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '784' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM7UocXukvMCEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdvgljm7QmR1nEoJo6wnbkAT5oYDhhlpdx4w4UVw6OEezntp0X5jch87iTkdyzs9rHnguZbl-pKYF6YANyG4WrY -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt?alt=media - response: - body: - string: zz - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '2' - Content-Type: - - text/plain - Etag: - - CM7UocXukvMCEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1632323404065358' - X-Goog-Hash: - - crc32c=7hMsNg==,md5=Je0by0I7C3IA9IX8X/ccjg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt?alt=media -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdscgRkb1-4HwsIBlJU9HBF8bnqENVWb1SvCL8qmb5DL0lVaXpgs3alFgZDYGRUOD5eBCff_jWeJKLHpgwEI0Gg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdscgRkb1-4HwsIBlJU9HBF8bnqENVWb1SvCL8qmb5DL0lVaXpgs3alFgZDYGRUOD5eBCff_jWeJKLHpgwEI0Gg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/onefile/a%.txt/1632323404552357\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt?generation=1632323404552357&alt=media\",\n - \ \"name\": \"test/onefile/a%.txt\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1632323404552357\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CKWxv8XukvMCEAE=\",\n \"timeCreated\": - \"2021-09-22T15:10:04.572Z\",\n \"updated\": \"2021-09-22T15:10:04.572Z\",\n - \ \"timeStorageClassUpdated\": \"2021-09-22T15:10:04.572Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKWxv8XukvMCEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ADPycdscgRkb1-4HwsIBlJU9HBF8bnqENVWb1SvCL8qmb5DL0lVaXpgs3alFgZDYGRUOD5eBCff_jWeJKLHpgwEI0Gg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt?alt=media - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '0' - Content-Type: - - application/octet-stream - Etag: - - CKWxv8XukvMCEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1632323404552357' - X-Goog-Hash: - - crc32c=AAAAAA==,md5=1B2M2Y8AsgTpgAmY7PhCfg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=test%2Fonefile%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/onefile/a%.txt/1632323404552357\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt?generation=1632323404552357&alt=media\",\n - \ \"name\": \"test/onefile/a%.txt\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1632323404552357\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CKWxv8XukvMCEAE=\",\n \"timeCreated\": - \"2021-09-22T15:10:04.572Z\",\n \"updated\": \"2021-09-22T15:10:04.572Z\",\n - \ \"timeStorageClassUpdated\": \"2021-09-22T15:10:04.572Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/onefile/a%25.txt/1632323404065358\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt?generation=1632323404065358&alt=media\",\n - \ \"name\": \"test/onefile/a%25.txt\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1632323404065358\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"text/plain\",\n \"storageClass\": \"STANDARD\",\n - \ \"size\": \"2\",\n \"md5Hash\": \"Je0by0I7C3IA9IX8X/ccjg==\",\n - \ \"crc32c\": \"7hMsNg==\",\n \"etag\": \"CM7UocXukvMCEAE=\",\n \"timeCreated\": - \"2021-09-22T15:10:04.097Z\",\n \"updated\": \"2021-09-22T15:10:04.097Z\",\n - \ \"timeStorageClassUpdated\": \"2021-09-22T15:10:04.097Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1777' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=test/onefile/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/onefile/a%.txt/1632323404552357\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt?generation=1632323404552357&alt=media\",\n - \ \"name\": \"test/onefile/a%.txt\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1632323404552357\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CKWxv8XukvMCEAE=\",\n \"timeCreated\": - \"2021-09-22T15:10:04.572Z\",\n \"updated\": \"2021-09-22T15:10:04.572Z\",\n - \ \"timeStorageClassUpdated\": \"2021-09-22T15:10:04.572Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/onefile/a%25.txt/1632323404065358\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt?generation=1632323404065358&alt=media\",\n - \ \"name\": \"test/onefile/a%25.txt\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1632323404065358\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"text/plain\",\n \"storageClass\": \"STANDARD\",\n - \ \"size\": \"2\",\n \"md5Hash\": \"Je0by0I7C3IA9IX8X/ccjg==\",\n - \ \"crc32c\": \"7hMsNg==\",\n \"etag\": \"CM7UocXukvMCEAE=\",\n \"timeCreated\": - \"2021-09-22T15:10:04.097Z\",\n \"updated\": \"2021-09-22T15:10:04.097Z\",\n - \ \"timeStorageClassUpdated\": \"2021-09-22T15:10:04.097Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1777' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%25.txt HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Fonefile%2Fa%2525.txt HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_rLHGBlMKSGHPi6DXTC01uS4F1F90337h\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Wed, 22 Sep 2021 15:10:05 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_rLHGBlMKSGHPi6DXTC01uS4F1F90337h\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Wed, 22 Sep 2021 - 15:10:05 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_rLHGBlMKSGHPi6DXTC01uS4F1F90337h--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_rLHGBlMKSGHPi6DXTC01uS4F1F90337h - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_pickle.yaml b/gcsfs/tests/recordings/test_pickle.yaml deleted file mode 100644 index f1e626a5..00000000 --- a/gcsfs/tests/recordings/test_pickle.yaml +++ /dev/null @@ -1,420 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAI9JmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzaER64OqJ_-q1ASBxg-GdNDhihte6i5q_HMavS3va806PprubmA8WnS-7hbhe6yOaTj0DpagyfdrNNN3QyyoOEmD2Gpw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '1234567' - headers: - Content-Length: - - '7' - Content-Range: - - bytes 0-6/7 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzaER64OqJ_-q1ASBxg-GdNDhihte6i5q_HMavS3va806PprubmA8WnS-7hbhe6yOaTj0DpagyfdrNNN3QyyoOEmD2Gpw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/abcdefg/1620658576223227\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fabcdefg\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fabcdefg?generation=1620658576223227&alt=media\",\n - \ \"name\": \"nested/abcdefg\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658576223227\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"7\",\n \"md5Hash\": \"/OqSD3QStdp74M9CuMk3WQ==\",\n - \ \"crc32c\": \"EkKX6g==\",\n \"etag\": \"CPvX89Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:16.243Z\",\n \"updated\": \"2021-05-10T14:56:16.243Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:16.243Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '762' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPvX89Wvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzaER64OqJ_-q1ASBxg-GdNDhihte6i5q_HMavS3va806PprubmA8WnS-7hbhe6yOaTj0DpagyfdrNNN3QyyoOEmD2Gpw -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uzkh7AVWz711_ae8DA_DkqY19fMwhlxfruOHO5jOpXyzhM0gmcl4_wU_iFGZ6h_HiY2RxvsdPlVnq_ZG0u0VXwmE_XJsA - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uzkh7AVWz711_ae8DA_DkqY19fMwhlxfruOHO5jOpXyzhM0gmcl4_wU_iFGZ6h_HiY2RxvsdPlVnq_ZG0u0VXwmE_XJsA - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658576590796\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658576590796&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658576590796\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CMyPitavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:16.610Z\",\n \"updated\": \"2021-05-10T14:56:16.610Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:16.610Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMyPitavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uzkh7AVWz711_ae8DA_DkqY19fMwhlxfruOHO5jOpXyzhM0gmcl4_wU_iFGZ6h_HiY2RxvsdPlVnq_ZG0u0VXwmE_XJsA -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"prefixes\": [\n \"nested/\",\n - \ \"tmp/\"\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '79' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/nested/abcdefg/1620658576223227\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fabcdefg\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fabcdefg?generation=1620658576223227&alt=media\",\n - \ \"name\": \"nested/abcdefg\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658576223227\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"7\",\n \"md5Hash\": \"/OqSD3QStdp74M9CuMk3WQ==\",\n - \ \"crc32c\": \"EkKX6g==\",\n \"etag\": \"CPvX89Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:16.243Z\",\n \"updated\": \"2021-05-10T14:56:16.243Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:16.243Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658576590796\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658576590796&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658576590796\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CMyPitavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:16.610Z\",\n \"updated\": \"2021-05-10T14:56:16.610Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:16.610Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1715' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fabcdefg HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_yOgfeQAgSLvh4oDSi7ZHlpgz9HzpA5BC\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:16 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_yOgfeQAgSLvh4oDSi7ZHlpgz9HzpA5BC\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:16 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_yOgfeQAgSLvh4oDSi7ZHlpgz9HzpA5BC--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_yOgfeQAgSLvh4oDSi7ZHlpgz9HzpA5BC - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_placeholder_dir_cache_validity.yaml b/gcsfs/tests/recordings/test_placeholder_dir_cache_validity.yaml deleted file mode 100644 index 6a937fe8..00000000 --- a/gcsfs/tests/recordings/test_placeholder_dir_cache_validity.yaml +++ /dev/null @@ -1,1368 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIADJKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658739927126\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658739927126&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739927126\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CNaw+6Owv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:59.947Z\",\n - \ \"updated\": \"2021-05-10T14:58:59.947Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:59.947Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNaw+6Owv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658739929878\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658739929878&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658739929878\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJbG+6Owv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:59.961Z\",\n \"updated\": \"2021-05-10T14:58:59.961Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:59.961Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJbG+6Owv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658739932778\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658739932778&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739932778\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COrc+6Owv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:59.963Z\",\n - \ \"updated\": \"2021-05-10T14:58:59.963Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:59.963Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COrc+6Owv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658739938479\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658739938479&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739938479\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CK+J/KOwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:59.972Z\",\n - \ \"updated\": \"2021-05-10T14:58:59.972Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:59.972Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK+J/KOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658739938120\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658739938120&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658739938120\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CMiG/KOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:59.970Z\",\n \"updated\": \"2021-05-10T14:58:59.970Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:59.970Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMiG/KOwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658740038916\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658740038916&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658740038916\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CISagqSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.059Z\",\n \"updated\": \"2021-05-10T14:59:00.059Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.059Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CISagqSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658740049283\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658740049283&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658740049283\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CIPrgqSwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:59:00.083Z\",\n - \ \"updated\": \"2021-05-10T14:59:00.083Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:59:00.083Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIPrgqSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658740130654\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658740130654&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658740130654\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CN7mh6Swv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.150Z\",\n \"updated\": \"2021-05-10T14:59:00.150Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.150Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN7mh6Swv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658740236213\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658740236213&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658740236213\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLWfjqSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.268Z\",\n \"updated\": \"2021-05-10T14:59:00.268Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.268Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLWfjqSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzXjuw9pHow_4KyV_qMm50L1Nt2ouAvIEhm-ZXrHoT0KJGzLvWXw8PrewbeCMafYcj_bgksFowD6i1FB2KjM4d2o-LzQg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzXjuw9pHow_4KyV_qMm50L1Nt2ouAvIEhm-ZXrHoT0KJGzLvWXw8PrewbeCMafYcj_bgksFowD6i1FB2KjM4d2o-LzQg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a//1620658740819635\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2F\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2F?generation=1620658740819635&alt=media\",\n - \ \"name\": \"a/\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": \"1620658740819635\",\n - \ \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CLPtsaSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.839Z\",\n \"updated\": \"2021-05-10T14:59:00.839Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.839Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '714' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLPtsaSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzXjuw9pHow_4KyV_qMm50L1Nt2ouAvIEhm-ZXrHoT0KJGzLvWXw8PrewbeCMafYcj_bgksFowD6i1FB2KjM4d2o-LzQg -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwAnr5GCInRabQWnC-ZRJNDFKd5NUjOzskQSGTXqBzTT0k2b8q_cGCMxJACh9bG9bzfePWsCHK_s6_AqvEHM9c6XQhv7g - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwAnr5GCInRabQWnC-ZRJNDFKd5NUjOzskQSGTXqBzTT0k2b8q_cGCMxJACh9bG9bzfePWsCHK_s6_AqvEHM9c6XQhv7g - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658741520031\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658741520031&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658741520031\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJ/N3KSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:01.542Z\",\n \"updated\": \"2021-05-10T14:59:01.542Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:01.542Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '730' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ/N3KSwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwAnr5GCInRabQWnC-ZRJNDFKd5NUjOzskQSGTXqBzTT0k2b8q_cGCMxJACh9bG9bzfePWsCHK_s6_AqvEHM9c6XQhv7g -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzEAX1fEacWDvUC-VudeAf6ispOQ-MczMFmiM7FQWJRXfO1G5BGohkY5WHK9FfM6wDEfNE6wz4uVa31UCpC_V4GjKbJCg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzEAX1fEacWDvUC-VudeAf6ispOQ-MczMFmiM7FQWJRXfO1G5BGohkY5WHK9FfM6wDEfNE6wz4uVa31UCpC_V4GjKbJCg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/b/1620658742223883\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/b\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/b?generation=1620658742223883&alt=media\",\n - \ \"name\": \"b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": \"1620658742223883\",\n - \ \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIvIh6Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:02.243Z\",\n \"updated\": \"2021-05-10T14:59:02.243Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:02.243Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '706' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIvIh6Wwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzEAX1fEacWDvUC-VudeAf6ispOQ-MczMFmiM7FQWJRXfO1G5BGohkY5WHK9FfM6wDEfNE6wz4uVa31UCpC_V4GjKbJCg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a//1620658740819635\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2F\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2F?generation=1620658740819635&alt=media\",\n - \ \"name\": \"a/\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658740819635\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CLPtsaSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.839Z\",\n \"updated\": \"2021-05-10T14:59:00.839Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.839Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658741520031\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658741520031&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658741520031\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CJ/N3KSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:01.542Z\",\n \"updated\": \"2021-05-10T14:59:01.542Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:01.542Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1647' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/b - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/b/1620658742223883\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/b\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/b?generation=1620658742223883&alt=media\",\n - \ \"name\": \"b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": \"1620658742223883\",\n - \ \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIvIh6Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:02.243Z\",\n \"updated\": \"2021-05-10T14:59:02.243Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:02.243Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '706' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIvIh6Wwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/b -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658739929878\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658739929878&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739929878\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJbG+6Owv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:59.961Z\",\n \"updated\": \"2021-05-10T14:58:59.961Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:59.961Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658740038916\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658740038916&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658740038916\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CISagqSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.059Z\",\n \"updated\": \"2021-05-10T14:59:00.059Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.059Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658740236213\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658740236213&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658740236213\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLWfjqSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.268Z\",\n \"updated\": \"2021-05-10T14:59:00.268Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.268Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a//1620658740819635\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2F\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2F?generation=1620658740819635&alt=media\",\n - \ \"name\": \"a/\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658740819635\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CLPtsaSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.839Z\",\n \"updated\": \"2021-05-10T14:59:00.839Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.839Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658741520031\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658741520031&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658741520031\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CJ/N3KSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:01.542Z\",\n \"updated\": \"2021-05-10T14:59:01.542Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:01.542Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/b/1620658742223883\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/b\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/b?generation=1620658742223883&alt=media\",\n - \ \"name\": \"b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658742223883\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CIvIh6Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:02.243Z\",\n \"updated\": \"2021-05-10T14:59:02.243Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:02.243Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658740130654\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658740130654&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658740130654\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CN7mh6Swv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.150Z\",\n \"updated\": \"2021-05-10T14:59:00.150Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.150Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658739938120\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658739938120&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739938120\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CMiG/KOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:59.970Z\",\n \"updated\": \"2021-05-10T14:58:59.970Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:59.970Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658739938479\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658739938479&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739938479\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CK+J/KOwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:59.972Z\",\n \"updated\": \"2021-05-10T14:58:59.972Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:59.972Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658740049283\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658740049283&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658740049283\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIPrgqSwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:00.083Z\",\n \"updated\": \"2021-05-10T14:59:00.083Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:00.083Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658739932778\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658739932778&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739932778\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COrc+6Owv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:59.963Z\",\n \"updated\": \"2021-05-10T14:58:59.963Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:59.963Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658739927126\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658739927126&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658739927126\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CNaw+6Owv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:59.947Z\",\n \"updated\": \"2021-05-10T14:58:59.947Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:59.947Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '10064' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2F HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2Ffile HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/b HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:02 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:02 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:02 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:03 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_Jhgcgy0qHs0iXW9ATuL7XMNPk-GZkgAR - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_pseudo_dir_find.yaml b/gcsfs/tests/recordings/test_pseudo_dir_find.yaml deleted file mode 100644 index c1786d3d..00000000 --- a/gcsfs/tests/recordings/test_pseudo_dir_find.yaml +++ /dev/null @@ -1,429 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIADdKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwgnD7d6rO-bGznE8i-AmPY9ng8eGb50dU3Akz7iJ35Pkdmm3Uuiprt37MwmwyRqR3nEj4srxg7BsuhShdPWynW5I6IeQ - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwgnD7d6rO-bGznE8i-AmPY9ng8eGb50dU3Akz7iJ35Pkdmm3Uuiprt37MwmwyRqR3nEj4srxg7BsuhShdPWynW5I6IeQ - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/file/1620658745423734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile?generation=1620658745423734&alt=media\",\n - \ \"name\": \"a/b/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658745423734\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CPbuyqawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:05.443Z\",\n \"updated\": \"2021-05-10T14:59:05.443Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:05.443Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '742' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPbuyqawv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwgnD7d6rO-bGznE8i-AmPY9ng8eGb50dU3Akz7iJ35Pkdmm3Uuiprt37MwmwyRqR3nEj4srxg7BsuhShdPWynW5I6IeQ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/file/1620658745423734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile?generation=1620658745423734&alt=media\",\n - \ \"name\": \"a/b/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658745423734\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPbuyqawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:05.443Z\",\n \"updated\": \"2021-05-10T14:59:05.443Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:05.443Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/file/1620658745423734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile?generation=1620658745423734&alt=media\",\n - \ \"name\": \"a/b/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658745423734\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPbuyqawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:05.443Z\",\n \"updated\": \"2021-05-10T14:59:05.443Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:05.443Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/file/1620658745423734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile?generation=1620658745423734&alt=media\",\n - \ \"name\": \"a/b/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658745423734\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPbuyqawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:05.443Z\",\n \"updated\": \"2021-05-10T14:59:05.443Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:05.443Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/file/1620658745423734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile?generation=1620658745423734&alt=media\",\n - \ \"name\": \"a/b/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658745423734\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPbuyqawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:05.443Z\",\n \"updated\": \"2021-05-10T14:59:05.443Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:05.443Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/file/1620658745423734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile?generation=1620658745423734&alt=media\",\n - \ \"name\": \"a/b/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658745423734\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPbuyqawv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:05.443Z\",\n \"updated\": \"2021-05-10T14:59:05.443Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:05.443Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '868' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2Fb%2Ffile HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch__HyDcL6k_Y7_ETpsP5cAt-iJ3dQXJ8_Z\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:06 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch__HyDcL6k_Y7_ETpsP5cAt-iJ3dQXJ8_Z--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch__HyDcL6k_Y7_ETpsP5cAt-iJ3dQXJ8_Z - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_read_block.yaml b/gcsfs/tests/recordings/test_read_block.yaml deleted file mode 100644 index 2bad516f..00000000 --- a/gcsfs/tests/recordings/test_read_block.yaml +++ /dev/null @@ -1,1854 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAOxJmWAC/4WPMQ7DIBAEv2JRJ9C7zEesE5xtFOAQdwiiyH+PSapUrla7mmL2rcBaZF6EnpjU - PKneu7pNii1lHP2M5N20i2SejWmt6Y1oCwjZs7YUDVTZjQ1U3T0HkJVKvMQrY/FpJY0RfLjET0mq - SVgXHH0IfoUXef0sHwgFy9i9+/9yfABPEENN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658669475734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658669475734&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658669475734\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CJavr4Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.495Z\",\n \"updated\": \"2021-05-10T14:57:49.495Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.495Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJavr4Kwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658669583826\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658669583826&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658669583826\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNL7tYKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.616Z\",\n \"updated\": \"2021-05-10T14:57:49.616Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.616Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNL7tYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658669591772\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658669591772&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669591772\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CNy5toKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.619Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.619Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.619Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNy5toKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658669610406\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658669610406&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658669610406\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKbLt4Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.635Z\",\n \"updated\": \"2021-05-10T14:57:49.635Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.635Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKbLt4Kwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658669625613\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658669625613&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669625613\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CI3CuIKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.654Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.654Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.654Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI3CuIKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658669646625\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658669646625&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658669646625\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKHmuYKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.668Z\",\n \"updated\": \"2021-05-10T14:57:49.668Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.668Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKHmuYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658669656750\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658669656750&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669656750\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CK61uoKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.690Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.690Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.690Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK61uoKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658669860667\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658669860667&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658669860667\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLvuxoKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.880Z\",\n \"updated\": \"2021-05-10T14:57:49.880Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.880Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLvuxoKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=1-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: '"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '132' - Content-Range: - - bytes 1-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=30-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: '"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '103' - Content-Range: - - bytes 30-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: - Range: - - bytes=0-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Range: - - bytes 0-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=35-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: 'amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '98' - Content-Range: - - bytes 35-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: - Range: - - bytes=0-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Range: - - bytes 0-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=0-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Range: - - bytes 0-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=0-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Range: - - bytes 0-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=0-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Range: - - bytes 0-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=4-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: 'ount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '129' - Content-Range: - - bytes 4-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=5-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: 'unt": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '128' - Content-Range: - - bytes 5-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"updated\": \"2021-05-10T14:57:49.393Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:49.393Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ2UqYKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=5-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658669373981 - response: - body: - string: 'unt": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '128' - Content-Range: - - bytes 5-132/133 - Content-Type: - - application/octet-stream - Etag: - - CJ2UqYKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658669373981' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658669583826\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658669583826&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669583826\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CNL7tYKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.616Z\",\n \"updated\": \"2021-05-10T14:57:49.616Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.616Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658669475734\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658669475734&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669475734\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CJavr4Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.495Z\",\n \"updated\": \"2021-05-10T14:57:49.495Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.495Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658669860667\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658669860667&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669860667\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CLvuxoKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.880Z\",\n \"updated\": \"2021-05-10T14:57:49.880Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.880Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658669610406\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658669610406&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669610406\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKbLt4Kwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.635Z\",\n \"updated\": \"2021-05-10T14:57:49.635Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.635Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658669646625\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658669646625&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669646625\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKHmuYKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.668Z\",\n \"updated\": \"2021-05-10T14:57:49.668Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.668Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658669656750\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658669656750&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669656750\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CK61uoKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.690Z\",\n \"updated\": \"2021-05-10T14:57:49.690Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.690Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658669625613\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658669625613&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669625613\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CI3CuIKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.654Z\",\n \"updated\": \"2021-05-10T14:57:49.654Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.654Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658669373981\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658669373981&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669373981\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CJ2UqYKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.393Z\",\n \"updated\": \"2021-05-10T14:57:49.393Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.393Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658669591772\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658669591772&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658669591772\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CNy5toKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:49.619Z\",\n \"updated\": \"2021-05-10T14:57:49.619Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:49.619Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:51 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:51 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_dWMqCFgQUv0coTI6B_hQpBm3AY_UtiDN - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_read_keys_from_bucket.yaml b/gcsfs/tests/recordings/test_read_keys_from_bucket.yaml deleted file mode 100644 index 3aa31884..00000000 --- a/gcsfs/tests/recordings/test_read_keys_from_bucket.yaml +++ /dev/null @@ -1,1254 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAK1JmWAC/4WPsQ7DIBBDfyVibmHP2B+JTnBJUIFD3CGoqvx7Qzt1ymTZsqzntwJrkXkRemJS - 86R67+o2KbaUcfhTknfTLpJ5Nqa1pjeiLSBkz9pSNFBlN+cM1SSsCw5/2a+MxaeVNEbw4bJuA1V3 - zwFkpRIH4Bd4kdeP8oFQsIzcu/8vxwdcFoAW4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658606037951\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658606037951&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606037951\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CL+3j+Svv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:46.057Z\",\n - \ \"updated\": \"2021-05-10T14:56:46.057Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:46.057Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL+3j+Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658606119139\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658606119139&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658606119139\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"COOxlOSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.149Z\",\n \"updated\": \"2021-05-10T14:56:46.149Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.149Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COOxlOSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658606123280\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658606123280&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606123280\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CJDSlOSvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:46.155Z\",\n - \ \"updated\": \"2021-05-10T14:56:46.155Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:46.155Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJDSlOSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658606123779\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658606123779&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658606123779\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIPWlOSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.156Z\",\n \"updated\": \"2021-05-10T14:56:46.156Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.156Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIPWlOSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658606144323\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658606144323&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606144323\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CMP2leSvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:46.167Z\",\n - \ \"updated\": \"2021-05-10T14:56:46.167Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:46.167Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMP2leSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658606149272\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658606149272&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606149272\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CJidluSvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:46.177Z\",\n - \ \"updated\": \"2021-05-10T14:56:46.177Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:46.177Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJidluSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658606211624\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658606211624&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658606211624\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKiEmuSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.231Z\",\n \"updated\": \"2021-05-10T14:56:46.231Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.231Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKiEmuSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658606242062\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658606242062&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658606242062\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CI7ym+Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.261Z\",\n \"updated\": \"2021-05-10T14:56:46.261Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.261Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI7ym+Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658606252233\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658606252233&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658606252233\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMnBnOSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.285Z\",\n \"updated\": \"2021-05-10T14:56:46.285Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.285Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMnBnOSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CL+3j+Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658606037951' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CJidluSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658606149272' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CL+3j+Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658606037951' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CL+3j+Svv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658606037951' - X-Goog-Hash: - - crc32c=6wJAgQ==,md5=xK7pmJz/Oj5HGIyfQpYTig== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CJidluSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658606149272' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Type: - - application/octet-stream - Etag: - - CJidluSvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658606149272' - X-Goog-Hash: - - crc32c=Su+F+g==,md5=bjhC5OCrzKV+8MGMCF2BQA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658606119139\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658606119139&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606119139\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"COOxlOSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.149Z\",\n \"updated\": \"2021-05-10T14:56:46.149Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.149Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658606252233\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658606252233&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606252233\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMnBnOSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.285Z\",\n \"updated\": \"2021-05-10T14:56:46.285Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.285Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658606211624\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658606211624&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606211624\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CKiEmuSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.231Z\",\n \"updated\": \"2021-05-10T14:56:46.231Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.231Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658606123779\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658606123779&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606123779\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIPWlOSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.156Z\",\n \"updated\": \"2021-05-10T14:56:46.156Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.156Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658606242062\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658606242062&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606242062\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CI7ym+Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.261Z\",\n \"updated\": \"2021-05-10T14:56:46.261Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.261Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658606123280\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658606123280&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606123280\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CJDSlOSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.155Z\",\n \"updated\": \"2021-05-10T14:56:46.155Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.155Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658606144323\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658606144323&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606144323\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CMP2leSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.167Z\",\n \"updated\": \"2021-05-10T14:56:46.167Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.167Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658606037951\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658606037951&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606037951\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CL+3j+Svv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.057Z\",\n \"updated\": \"2021-05-10T14:56:46.057Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.057Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658606149272\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658606149272&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658606149272\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CJidluSvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:46.177Z\",\n \"updated\": \"2021-05-10T14:56:46.177Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:46.177Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:47 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:47 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_mp-pcU_pZV0-xloKpdNWvb4tVnWB1f2C - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_read_small.yaml b/gcsfs/tests/recordings/test_read_small.yaml deleted file mode 100644 index 14d2ae83..00000000 --- a/gcsfs/tests/recordings/test_read_small.yaml +++ /dev/null @@ -1,1266 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAOhJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658665054653\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658665054653&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665054653\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CL3DoYCwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:45.074Z\",\n - \ \"updated\": \"2021-05-10T14:57:45.074Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:45.074Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL3DoYCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658665120366\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658665120366&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658665120366\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CO7EpYCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.148Z\",\n \"updated\": \"2021-05-10T14:57:45.148Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.148Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO7EpYCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658665130670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658665130670\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CK6VpoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.163Z\",\n \"updated\": \"2021-05-10T14:57:45.163Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.163Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK6VpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658665137504\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658665137504&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665137504\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CODKpoCwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:45.170Z\",\n - \ \"updated\": \"2021-05-10T14:57:45.170Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:45.170Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CODKpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658665136165\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658665136165&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658665136165\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKXApoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.164Z\",\n \"updated\": \"2021-05-10T14:57:45.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.164Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKXApoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658665136995\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658665136995&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665136995\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"COPGpoCwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:45.169Z\",\n - \ \"updated\": \"2021-05-10T14:57:45.169Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:45.169Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COPGpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658665142327\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658665142327&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665142327\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CLfwpoCwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:45.173Z\",\n - \ \"updated\": \"2021-05-10T14:57:45.173Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:45.173Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLfwpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658665233328\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658665233328&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658665233328\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLC3rICwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.253Z\",\n \"updated\": \"2021-05-10T14:57:45.253Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.253Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLC3rICwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658665362614\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658665362614&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658665362614\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLaptICwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.382Z\",\n \"updated\": \"2021-05-10T14:57:45.382Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.382Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLaptICwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658665130670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658665130670\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CK6VpoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.163Z\",\n \"updated\": \"2021-05-10T14:57:45.163Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.163Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK6VpoCwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: - Range: - - bytes=0-12 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658665130670 - response: - body: - string: name,amount,i - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '13' - Content-Range: - - bytes 0-12/51 - Content-Type: - - application/octet-stream - Etag: - - CK6VpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658665130670' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media -- request: - body: null - headers: - Range: - - bytes=13-24 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658665130670 - response: - body: - string: 'd - - Alice,100,' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '12' - Content-Range: - - bytes 13-24/51 - Content-Type: - - application/octet-stream - Etag: - - CK6VpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658665130670' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media -- request: - body: null - headers: - Range: - - bytes=25-36 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658665130670 - response: - body: - string: '1 - - Bob,200,2 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '12' - Content-Range: - - bytes 25-36/51 - Content-Type: - - application/octet-stream - Etag: - - CK6VpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658665130670' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media -- request: - body: null - headers: - Range: - - bytes=37-48 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658665130670 - response: - body: - string: Charlie,300, - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '12' - Content-Range: - - bytes 37-48/51 - Content-Type: - - application/octet-stream - Etag: - - CK6VpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658665130670' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media -- request: - body: null - headers: - Range: - - bytes=49-50 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658665130670 - response: - body: - string: '3 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '2' - Content-Range: - - bytes 49-50/51 - Content-Type: - - application/octet-stream - Etag: - - CK6VpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658665130670' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media - response: - body: - string: 'name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '51' - Content-Type: - - application/octet-stream - Etag: - - CK6VpoCwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658665130670' - X-Goog-Hash: - - crc32c=yR1u0w==,md5=Auycd2AT7x5m8G1W0NXcuA== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658665130670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658665130670&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665130670\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CK6VpoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.163Z\",\n \"updated\": \"2021-05-10T14:57:45.163Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.163Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658665362614\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658665362614&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665362614\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CLaptICwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.382Z\",\n \"updated\": \"2021-05-10T14:57:45.382Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.382Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658665120366\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658665120366&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665120366\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CO7EpYCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.148Z\",\n \"updated\": \"2021-05-10T14:57:45.148Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.148Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658665136165\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658665136165&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665136165\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKXApoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.164Z\",\n \"updated\": \"2021-05-10T14:57:45.164Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.164Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658665233328\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658665233328&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665233328\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLC3rICwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.253Z\",\n \"updated\": \"2021-05-10T14:57:45.253Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.253Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658665137504\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658665137504&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665137504\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CODKpoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.170Z\",\n \"updated\": \"2021-05-10T14:57:45.170Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.170Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658665142327\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658665142327&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665142327\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CLfwpoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.173Z\",\n \"updated\": \"2021-05-10T14:57:45.173Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.173Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658665054653\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658665054653&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665054653\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CL3DoYCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.074Z\",\n \"updated\": \"2021-05-10T14:57:45.074Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.074Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658665136995\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658665136995&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658665136995\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"COPGpoCwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:45.169Z\",\n \"updated\": \"2021-05-10T14:57:45.169Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:45.169Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:46 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:46 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_DDzWFEQRoZkZoeErISkP5iFAtO9Bjq4T - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_readable.yaml b/gcsfs/tests/recordings/test_readable.yaml deleted file mode 100644 index b6872340..00000000 --- a/gcsfs/tests/recordings/test_readable.yaml +++ /dev/null @@ -1,327 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAApKmWAC/4XPsQ7DIAwE0F9BzC3sGfsjkQVOggoYYSNSVfn3hnbqlPFON7x7a3AOmWehJ2Y9 - Kb3vu74pzY4KjryJFJ6s7b2blWiNCCWwcZQsNNlsY6whL2QwQYjqau4iNX8vEWShmi7np45aFjYV - R1YnKgc/gF/wLK+f8oFQsY4++P8vxwcIgekt4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwyklRgoaxWXQ9PYaZb8FRqvHdVr2pWLd0sd3p2gbeiHcqIyUMLSmdemYPmHGpODcCJavpE9LyOPZmoCYUajEdsJy8C3A - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwyklRgoaxWXQ9PYaZb8FRqvHdVr2pWLd0sd3p2gbeiHcqIyUMLSmdemYPmHGpODcCJavpE9LyOPZmoCYUajEdsJy8C3A - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658699357236\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658699357236&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658699357236\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CLSYz5Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:19.377Z\",\n \"updated\": \"2021-05-10T14:58:19.377Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:19.377Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLSYz5Cwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwyklRgoaxWXQ9PYaZb8FRqvHdVr2pWLd0sd3p2gbeiHcqIyUMLSmdemYPmHGpODcCJavpE9LyOPZmoCYUajEdsJy8C3A -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658699357236\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658699357236&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658699357236\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CLSYz5Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:19.377Z\",\n \"updated\": \"2021-05-10T14:58:19.377Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:19.377Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLSYz5Cwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658699357236\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658699357236&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658699357236\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CLSYz5Cwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:19.377Z\",\n \"updated\": \"2021-05-10T14:58:19.377Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:19.377Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '876' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_KCwbb_RR6fVw_XSuJc9BtgatVLf4X-JV\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:19 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KCwbb_RR6fVw_XSuJc9BtgatVLf4X-JV--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_KCwbb_RR6fVw_XSuJc9BtgatVLf4X-JV - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_readline.yaml b/gcsfs/tests/recordings/test_readline.yaml deleted file mode 100644 index 26a4ee3b..00000000 --- a/gcsfs/tests/recordings/test_readline.yaml +++ /dev/null @@ -1,1686 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAPxJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658686202753\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658686202753&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686202753\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CIGnrIqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.223Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.223Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.223Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIGnrIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658686271695\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658686271695&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686271695\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CM/BsIqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.295Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.295Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.295Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM/BsIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658686288550\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658686288550&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686288550\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CKbFsYqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.315Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.315Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.315Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKbFsYqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658686290027\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658686290027&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686290027\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"COvQsYqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.322Z\",\n \"updated\": \"2021-05-10T14:58:06.322Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.322Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COvQsYqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658686303934\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658686303934&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686303934\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CL69soqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.333Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.333Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.333Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL69soqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658686309230\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658686309230&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686309230\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CO7msoqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.338Z\",\n \"updated\": \"2021-05-10T14:58:06.338Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.338Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO7msoqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658686419849\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658686419849&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686419849\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CInHuYqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.439Z\",\n \"updated\": \"2021-05-10T14:58:06.439Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.439Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CInHuYqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658686474239\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658686474239&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686474239\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CP/vvIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.493Z\",\n \"updated\": \"2021-05-10T14:58:06.493Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.493Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/vvIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658686534527\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658686534527&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686534527\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CP/GwIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.554Z\",\n \"updated\": \"2021-05-10T14:58:06.554Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.554Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/GwIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658686202753\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658686202753&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686202753\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CIGnrIqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.223Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.223Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.223Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIGnrIqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=0-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658686202753 - response: - body: - string: '{"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Range: - - bytes 0-132/133 - Content-Type: - - application/octet-stream - Etag: - - CIGnrIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686202753' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658686202753&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658686271695\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658686271695&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686271695\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CM/BsIqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.295Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.295Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.295Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM/BsIqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json -- request: - body: null - headers: - Range: - - bytes=0-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?alt=media&generation=1620658686271695 - response: - body: - string: '{"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '133' - Content-Range: - - bytes 0-132/133 - Content-Type: - - application/octet-stream - Etag: - - CM/BsIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686271695' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658686271695&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658686290027\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658686290027&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686290027\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"COvQsYqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.322Z\",\n \"updated\": \"2021-05-10T14:58:06.322Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.322Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COvQsYqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv -- request: - body: null - headers: - Range: - - bytes=0-50 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?alt=media&generation=1620658686290027 - response: - body: - string: 'name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '51' - Content-Range: - - bytes 0-50/51 - Content-Type: - - application/octet-stream - Etag: - - COvQsYqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686290027' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658686290027&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658686309230\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658686309230&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686309230\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CO7msoqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.338Z\",\n \"updated\": \"2021-05-10T14:58:06.338Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.338Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO7msoqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv -- request: - body: null - headers: - Range: - - bytes=0-14 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?alt=media&generation=1620658686309230 - response: - body: - string: 'name,amount,id - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '15' - Content-Range: - - bytes 0-14/15 - Content-Type: - - application/octet-stream - Etag: - - CO7msoqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686309230' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658686309230&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658686534527\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658686534527&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686534527\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CP/GwIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.554Z\",\n \"updated\": \"2021-05-10T14:58:06.554Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.554Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/GwIqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv -- request: - body: null - headers: - Range: - - bytes=0-51 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?alt=media&generation=1620658686534527 - response: - body: - string: 'name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '52' - Content-Range: - - bytes 0-51/52 - Content-Type: - - application/octet-stream - Etag: - - CP/GwIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686534527' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658686534527&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658686419849\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658686419849&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686419849\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CInHuYqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.439Z\",\n \"updated\": \"2021-05-10T14:58:06.439Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.439Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CInHuYqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 -- request: - body: null - headers: - Range: - - bytes=0-5 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?alt=media&generation=1620658686419849 - response: - body: - string: 'hello - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '6' - Content-Range: - - bytes 0-5/6 - Content-Type: - - application/octet-stream - Etag: - - CInHuYqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686419849' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658686419849&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658686474239\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658686474239&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658686474239\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CP/vvIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.493Z\",\n \"updated\": \"2021-05-10T14:58:06.493Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.493Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP/vvIqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2 -- request: - body: null - headers: - Range: - - bytes=0-4 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?alt=media&generation=1620658686474239 - response: - body: - string: world - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '5' - Content-Range: - - bytes 0-4/5 - Content-Type: - - application/octet-stream - Etag: - - CP/vvIqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686474239' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658686474239&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658686288550\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658686288550&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686288550\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CKbFsYqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.315Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.315Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.315Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKbFsYqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 -- request: - body: null - headers: - Range: - - bytes=0-5 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?alt=media&generation=1620658686288550 - response: - body: - string: 'hello - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '6' - Content-Range: - - bytes 0-5/6 - Content-Type: - - application/octet-stream - Etag: - - CKbFsYqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686288550' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658686288550&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658686303934\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658686303934&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686303934\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CL69soqwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:58:06.333Z\",\n - \ \"updated\": \"2021-05-10T14:58:06.333Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:58:06.333Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL69soqwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 -- request: - body: null - headers: - Range: - - bytes=0-4 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?alt=media&generation=1620658686303934 - response: - body: - string: world - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '5' - Content-Range: - - bytes 0-4/5 - Content-Type: - - application/octet-stream - Etag: - - CL69soqwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658686303934' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658686303934&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658686290027\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658686290027&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686290027\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"COvQsYqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.322Z\",\n \"updated\": \"2021-05-10T14:58:06.322Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.322Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658686309230\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658686309230&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686309230\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CO7msoqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.338Z\",\n \"updated\": \"2021-05-10T14:58:06.338Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.338Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658686534527\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658686534527&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686534527\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CP/GwIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.554Z\",\n \"updated\": \"2021-05-10T14:58:06.554Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.554Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658686419849\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658686419849&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686419849\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CInHuYqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.439Z\",\n \"updated\": \"2021-05-10T14:58:06.439Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.439Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658686474239\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658686474239&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686474239\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CP/vvIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.493Z\",\n \"updated\": \"2021-05-10T14:58:06.493Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.493Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658686288550\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658686288550&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686288550\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKbFsYqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.315Z\",\n \"updated\": \"2021-05-10T14:58:06.315Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.315Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658686303934\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658686303934&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686303934\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CL69soqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.333Z\",\n \"updated\": \"2021-05-10T14:58:06.333Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.333Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658686202753\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658686202753&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686202753\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CIGnrIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.223Z\",\n \"updated\": \"2021-05-10T14:58:06.223Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.223Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658686271695\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658686271695&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658686271695\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CM/BsIqwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:06.295Z\",\n \"updated\": \"2021-05-10T14:58:06.295Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:06.295Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:08 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:58:08 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_6pw_FSXyl0Llyhk2j1j99aVVlqLvNwSV - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_readline_blocksize.yaml b/gcsfs/tests/recordings/test_readline_blocksize.yaml deleted file mode 100644 index c106ddc0..00000000 --- a/gcsfs/tests/recordings/test_readline_blocksize.yaml +++ /dev/null @@ -1,375 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAANKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxCetC-Jsuur373ZqAvm6blqwoFCraWfAw_tBIa4-tNiC-ilXIY6hN7_O1dDEDJKkOFJmoyPLy9H_bKWqSHzqPqjVZVLg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: 'ab - - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - - ab' - headers: - Content-Length: - - '262150' - Content-Range: - - bytes 0-262149/262150 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxCetC-Jsuur373ZqAvm6blqwoFCraWfAw_tBIa4-tNiC-ilXIY6hN7_O1dDEDJKkOFJmoyPLy9H_bKWqSHzqPqjVZVLg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658693381152\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658693381152&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658693381152\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262150\",\n \"md5Hash\": - \"tVDra9BRb8qYTBizo1l48w==\",\n \"crc32c\": \"f2XL/A==\",\n \"etag\": \"CKC44o2wv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:58:13.401Z\",\n \"updated\": \"2021-05-10T14:58:13.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:13.401Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '755' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKC44o2wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxCetC-Jsuur373ZqAvm6blqwoFCraWfAw_tBIa4-tNiC-ilXIY6hN7_O1dDEDJKkOFJmoyPLy9H_bKWqSHzqPqjVZVLg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658693381152\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658693381152&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658693381152\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262150\",\n \"md5Hash\": - \"tVDra9BRb8qYTBizo1l48w==\",\n \"crc32c\": \"f2XL/A==\",\n \"etag\": \"CKC44o2wv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:58:13.401Z\",\n \"updated\": \"2021-05-10T14:58:13.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:13.401Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '755' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKC44o2wv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - Range: - - bytes=0-262149 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?alt=media&generation=1620658693381152 - response: - body: - string: 'ab - - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - - ab' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '262150' - Content-Range: - - bytes 0-262149/262150 - Content-Type: - - application/octet-stream - Etag: - - CKC44o2wv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658693381152' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658693381152&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658693381152\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658693381152&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658693381152\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"262150\",\n \"md5Hash\": \"tVDra9BRb8qYTBizo1l48w==\",\n \"crc32c\": - \"f2XL/A==\",\n \"etag\": \"CKC44o2wv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:13.401Z\",\n \"updated\": \"2021-05-10T14:58:13.401Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:13.401Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '881' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_zwUJmWcch9yi9sBVtv5AcQgQY8IUaXui\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:13 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_zwUJmWcch9yi9sBVtv5AcQgQY8IUaXui--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_zwUJmWcch9yi9sBVtv5AcQgQY8IUaXui - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_readline_empty.yaml b/gcsfs/tests/recordings/test_readline_empty.yaml deleted file mode 100644 index cbcf9697..00000000 --- a/gcsfs/tests/recordings/test_readline_empty.yaml +++ /dev/null @@ -1,327 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAJKmWAC/4XPsQ7DIAwE0F9BzC3sGfsjkQVOggoYYSNSVfn3hnbqlPFON7x7a3AOmWehJ2Y9 - Kb3vu74pzY4KjryJFJ6s7b2blWiNCCWwcZQsNNlsY6whL2QwQYjqau4iNX8vEWShmi7np45aFjYV - R1YnKgc/gF/wLK+f8oFQsY4++P8vxwcIgekt4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyt5pAGz-RD4XPHC5xWyCgcsmBAdkNurL0J8PlO3u5FX4SaIF3Y2P5bGLm3QegaOQkSeDDo7T0NT8F0mvYH0xMFQe26OA - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyt5pAGz-RD4XPHC5xWyCgcsmBAdkNurL0J8PlO3u5FX4SaIF3Y2P5bGLm3QegaOQkSeDDo7T0NT8F0mvYH0xMFQe26OA - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658691416820\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658691416820&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658691416820\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CPTF6oywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:11.436Z\",\n \"updated\": \"2021-05-10T14:58:11.436Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:11.436Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPTF6oywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uyt5pAGz-RD4XPHC5xWyCgcsmBAdkNurL0J8PlO3u5FX4SaIF3Y2P5bGLm3QegaOQkSeDDo7T0NT8F0mvYH0xMFQe26OA -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658691416820\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658691416820&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658691416820\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CPTF6oywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:11.436Z\",\n \"updated\": \"2021-05-10T14:58:11.436Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:11.436Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPTF6oywv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658691416820\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658691416820&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658691416820\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPTF6oywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:11.436Z\",\n \"updated\": \"2021-05-10T14:58:11.436Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:11.436Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '876' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_yN3BgRCsxllhqF1NhlSgSi58EfQL5rCn\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:11 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_yN3BgRCsxllhqF1NhlSgSi58EfQL5rCn--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_yN3BgRCsxllhqF1NhlSgSi58EfQL5rCn - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_readline_from_cache.yaml b/gcsfs/tests/recordings/test_readline_from_cache.yaml deleted file mode 100644 index 40c464e3..00000000 --- a/gcsfs/tests/recordings/test_readline_from_cache.yaml +++ /dev/null @@ -1,375 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAABKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzCRO5-TnrGJoK6Q5MA5Tqzf8QtXW85wN-adjkWemaI4lX0pJU1rbOUlHHlu8CfYUaH2mkOPfXfVaYYvK6vHnDX22wbag - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: 'a,b - - 11,22 - - 3,4' - headers: - Content-Length: - - '13' - Content-Range: - - bytes 0-12/13 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzCRO5-TnrGJoK6Q5MA5Tqzf8QtXW85wN-adjkWemaI4lX0pJU1rbOUlHHlu8CfYUaH2mkOPfXfVaYYvK6vHnDX22wbag - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658689686419\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658689686419&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658689686419\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"13\",\n \"md5Hash\": \"haMTXX21LuO+jssGPHetPQ==\",\n - \ \"crc32c\": \"p7IzLw==\",\n \"etag\": \"CJP3gIywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:09.706Z\",\n \"updated\": \"2021-05-10T14:58:09.706Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:09.706Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '751' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJP3gIywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzCRO5-TnrGJoK6Q5MA5Tqzf8QtXW85wN-adjkWemaI4lX0pJU1rbOUlHHlu8CfYUaH2mkOPfXfVaYYvK6vHnDX22wbag -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658689686419\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658689686419&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658689686419\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"13\",\n \"md5Hash\": \"haMTXX21LuO+jssGPHetPQ==\",\n - \ \"crc32c\": \"p7IzLw==\",\n \"etag\": \"CJP3gIywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:09.706Z\",\n \"updated\": \"2021-05-10T14:58:09.706Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:09.706Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '751' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJP3gIywv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - Range: - - bytes=0-12 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?alt=media&generation=1620658689686419 - response: - body: - string: 'a,b - - 11,22 - - 3,4' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '13' - Content-Range: - - bytes 0-12/13 - Content-Type: - - application/octet-stream - Etag: - - CJP3gIywv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658689686419' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658689686419&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658689686419\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658689686419&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658689686419\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"13\",\n \"md5Hash\": \"haMTXX21LuO+jssGPHetPQ==\",\n \"crc32c\": - \"p7IzLw==\",\n \"etag\": \"CJP3gIywv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:09.706Z\",\n \"updated\": \"2021-05-10T14:58:09.706Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:09.706Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '877' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_PNjvrTyu57LYWly5eeh_wqdQtPwjLPPX\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:10 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_PNjvrTyu57LYWly5eeh_wqdQtPwjLPPX--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_PNjvrTyu57LYWly5eeh_wqdQtPwjLPPX - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_request_header.yaml b/gcsfs/tests/recordings/test_request_header.yaml deleted file mode 100644 index 9289658a..00000000 --- a/gcsfs/tests/recordings/test_request_header.yaml +++ /dev/null @@ -1,222 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABxKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAB1KmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hblIzd9LBFmopst5Y6wh - L2QwQYhD8Cs8y+tn+UCoWEcf/P+X4wMEC22h4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing-requesterpays/o/?delimiter=%2F&maxResults=100&prefix=test&userProject=test_project - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing-requesterpays/o/?delimiter=/&prefix=test&maxResults=100&userProject=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_request_user_project.yaml b/gcsfs/tests/recordings/test_request_user_project.yaml deleted file mode 100644 index bd6f5872..00000000 --- a/gcsfs/tests/recordings/test_request_user_project.yaml +++ /dev/null @@ -1,222 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABlKmWAC/4WPMQ7DIBAEv2JRJ9C7zEesE5xtFOAQdwiiyH+PSapUrla7mmL2rcBaZF6EnpjU - PKneu7pNii1lHP2M5N20i2SejWmt6Y1oCwjZs7YUDVTZjQ1U3T0HkJVKvMQrY/FpJY0RfLjET0mq - SVgXHH0IfoUXef0sHwgFy9i9+/9yfABPEENN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABpKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing-requesterpays/o/?delimiter=%2F&maxResults=100&prefix=test&userProject=test_project - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing-requesterpays/o/?delimiter=/&prefix=test&maxResults=100&userProject=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_request_user_project_string.yaml b/gcsfs/tests/recordings/test_request_user_project_string.yaml deleted file mode 100644 index c41c20c7..00000000 --- a/gcsfs/tests/recordings/test_request_user_project_string.yaml +++ /dev/null @@ -1,222 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABpKmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6ip9z1LKwqTi0Oldy8Jc1F6n5 - e4kgC9U0AL/As7x+lA+EinX4wf9/OT5qoa7S4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIABtKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hblIzd9LBFmopst5Y6wh - L2QwQYhD8Cs8y+tn+UCoWEcf/P+X4wMEC22h4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing-requesterpays/o/?delimiter=%2F&maxResults=100&prefix=test&userProject=test_project - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing-requesterpays/o/?delimiter=/&prefix=test&maxResults=100&userProject=test_project -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_rm.yaml b/gcsfs/tests/recordings/test_rm.yaml deleted file mode 100644 index d92e0d4a..00000000 --- a/gcsfs/tests/recordings/test_rm.yaml +++ /dev/null @@ -1,509 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAJNJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1Ujl4dUW5SM3fSwRZqKbL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg9b1v+I4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/a\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/a\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '253' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=tmp%2Ftest%2Fa%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=tmp/test/a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/a\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/a\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '253' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzDzsefogzynIrJjXT1DH1HlWO1ieVsUS-JqXltXc3_PhcJRfF73VOFo-d_1sivU0Jau5rpsMmH87nyLpWD1kpHGgC91A - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzDzsefogzynIrJjXT1DH1HlWO1ieVsUS-JqXltXc3_PhcJRfF73VOFo-d_1sivU0Jau5rpsMmH87nyLpWD1kpHGgC91A - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658580813489\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658580813489&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658580813489\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CLHti9ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:20.833Z\",\n \"updated\": \"2021-05-10T14:56:20.833Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:20.833Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLHti9ivv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzDzsefogzynIrJjXT1DH1HlWO1ieVsUS-JqXltXc3_PhcJRfF73VOFo-d_1sivU0Jau5rpsMmH87nyLpWD1kpHGgC91A -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658580813489\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658580813489&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658580813489\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CLHti9ivv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:20.833Z\",\n \"updated\": \"2021-05-10T14:56:20.833Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:20.833Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLHti9ivv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_HORfeXCNRozqnE90Umi0qMKwdnOMkOVV\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:21 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_HORfeXCNRozqnE90Umi0qMKwdnOMkOVV--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_HORfeXCNRozqnE90Umi0qMKwdnOMkOVV - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/a\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/a\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '253' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=tmp%2Ftest%2Fa%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=tmp/test/a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/tmp/test/a\",\n \"errors\": [\n {\n \"message\": - \"No such object: gcsfs-testing/tmp/test/a\",\n \"domain\": \"global\",\n - \ \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '253' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: DELETE - uri: https://storage.googleapis.com/storage/v1/b/nonexistent - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"Not Found\",\n - \ \"errors\": [\n {\n \"message\": \"Not Found\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '193' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/nonexistent -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_rm_batch.yaml b/gcsfs/tests/recordings/test_rm_batch.yaml deleted file mode 100644 index 8dc2543b..00000000 --- a/gcsfs/tests/recordings/test_rm_batch.yaml +++ /dev/null @@ -1,511 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAJVJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTZ79qllYVNxaHWVd5Gav5cIslBN6lzJwV+2GmMN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB8gnzds4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyMriMUoY4jErdstTeVoiGDGv5AOOeLp3pm_8tZoeHYNbtYC8Qx1sfGc9IURw2XlrHHhp7IzUTyQokXiA6SfV2XoRuiFg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyMriMUoY4jErdstTeVoiGDGv5AOOeLp3pm_8tZoeHYNbtYC8Qx1sfGc9IURw2XlrHHhp7IzUTyQokXiA6SfV2XoRuiFg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658582727895\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658582727895&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658582727895\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CNfZgNmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:22.747Z\",\n \"updated\": \"2021-05-10T14:56:22.747Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:22.747Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNfZgNmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyMriMUoY4jErdstTeVoiGDGv5AOOeLp3pm_8tZoeHYNbtYC8Qx1sfGc9IURw2XlrHHhp7IzUTyQokXiA6SfV2XoRuiFg -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwgA2f93GLnkB-LAgXRTaONOA_u7ml1E9xz73jshSHggNyUvYdLCXRBZA8IQka0ioN4BwWqGbYUj2RAHFaDfi8rScc4ig - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwgA2f93GLnkB-LAgXRTaONOA_u7ml1E9xz73jshSHggNyUvYdLCXRBZA8IQka0ioN4BwWqGbYUj2RAHFaDfi8rScc4ig - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658583202171\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658583202171&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658583202171\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CPvSndmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:23.221Z\",\n \"updated\": \"2021-05-10T14:56:23.221Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:23.221Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPvSndmvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwgA2f93GLnkB-LAgXRTaONOA_u7ml1E9xz73jshSHggNyUvYdLCXRBZA8IQka0ioN4BwWqGbYUj2RAHFaDfi8rScc4ig -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658582727895\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658582727895&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658582727895\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CNfZgNmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:22.747Z\",\n \"updated\": \"2021-05-10T14:56:22.747Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:22.747Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658583202171\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658583202171&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658583202171\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPvSndmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:23.221Z\",\n \"updated\": \"2021-05-10T14:56:23.221Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:23.221Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1703' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658582727895\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658582727895&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658582727895\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CNfZgNmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:22.747Z\",\n \"updated\": \"2021-05-10T14:56:22.747Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:22.747Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/b/1620658583202171\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb?generation=1620658583202171&alt=media\",\n - \ \"name\": \"tmp/test/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658583202171\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPvSndmvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:23.221Z\",\n \"updated\": \"2021-05-10T14:56:23.221Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:23.221Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1703' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fb HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_vRgPzXeI04lNuobXJkNCfvepNb5JdA6O\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:23 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_vRgPzXeI04lNuobXJkNCfvepNb5JdA6O\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:23 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_vRgPzXeI04lNuobXJkNCfvepNb5JdA6O--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_vRgPzXeI04lNuobXJkNCfvepNb5JdA6O - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_rm_recursive.yaml b/gcsfs/tests/recordings/test_rm_recursive.yaml deleted file mode 100644 index faa8144d..00000000 --- a/gcsfs/tests/recordings/test_rm_recursive.yaml +++ /dev/null @@ -1,595 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAJhJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxISyCNrr6OsgbCsGlVRqTQshiihAoLfZK-OAY2zIWP1SlLys-5ShP2y9xZpNCxtF-9Q0YuCHSu39BqjNXEBzCpayBlhw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxISyCNrr6OsgbCsGlVRqTQshiihAoLfZK-OAY2zIWP1SlLys-5ShP2y9xZpNCxtF-9Q0YuCHSu39BqjNXEBzCpayBlhw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/1620658585235638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a?generation=1620658585235638&alt=media\",\n - \ \"name\": \"a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": \"1620658585235638\",\n - \ \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CLbhmdqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:25.255Z\",\n \"updated\": \"2021-05-10T14:56:25.255Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:25.255Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '706' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLbhmdqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UxISyCNrr6OsgbCsGlVRqTQshiihAoLfZK-OAY2zIWP1SlLys-5ShP2y9xZpNCxtF-9Q0YuCHSu39BqjNXEBzCpayBlhw -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyKsH39wbhcizvhrcBuTJ-Awy_w4a2xNOOxUV19zVixIM0InQrloyTzw6RpfMizy8L0a-lUgfpOVP7v5bujIOG1Z_F94g - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyKsH39wbhcizvhrcBuTJ-Awy_w4a2xNOOxUV19zVixIM0InQrloyTzw6RpfMizy8L0a-lUgfpOVP7v5bujIOG1Z_F94g - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/1620658585740086\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb?generation=1620658585740086&alt=media\",\n - \ \"name\": \"a/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658585740086\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CLbGuNqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:25.759Z\",\n \"updated\": \"2021-05-10T14:56:25.759Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:25.759Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLbGuNqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UyKsH39wbhcizvhrcBuTJ-Awy_w4a2xNOOxUV19zVixIM0InQrloyTzw6RpfMizy8L0a-lUgfpOVP7v5bujIOG1Z_F94g -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwilGxG9hzChBmtEOqG8Av5bvhCyT1F21S6ei5_BekvsP0DmI25k1YjsnsdQj9St34NpsdnprO0VE6zAPG4N9sPCCmXOg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwilGxG9hzChBmtEOqG8Av5bvhCyT1F21S6ei5_BekvsP0DmI25k1YjsnsdQj9St34NpsdnprO0VE6zAPG4N9sPCCmXOg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/c/1620658586343638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fc\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fc?generation=1620658586343638&alt=media\",\n - \ \"name\": \"a/c\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658586343638\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CNax3dqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:26.366Z\",\n \"updated\": \"2021-05-10T14:56:26.366Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:26.366Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNax3dqvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwilGxG9hzChBmtEOqG8Av5bvhCyT1F21S6ei5_BekvsP0DmI25k1YjsnsdQj9St34NpsdnprO0VE6zAPG4N9sPCCmXOg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/b/1620658585740086\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fb\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fb?generation=1620658585740086&alt=media\",\n - \ \"name\": \"a/b\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658585740086\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CLbGuNqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:25.759Z\",\n \"updated\": \"2021-05-10T14:56:25.759Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:25.759Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/c/1620658586343638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fc\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Fc?generation=1620658586343638&alt=media\",\n - \ \"name\": \"a/c\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658586343638\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CNax3dqvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:26.366Z\",\n \"updated\": \"2021-05-10T14:56:26.366Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:26.366Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '1639' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2Fb HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2Fc HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_XoXfwB5K3bYbYrLlmBzC3rbvzjIghSA9\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:26 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_XoXfwB5K3bYbYrLlmBzC3rbvzjIghSA9\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_XoXfwB5K3bYbYrLlmBzC3rbvzjIghSA9\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:26 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_XoXfwB5K3bYbYrLlmBzC3rbvzjIghSA9--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_XoXfwB5K3bYbYrLlmBzC3rbvzjIghSA9 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fc - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/a/c\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/a/c\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '239' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fc -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=a%2Fc%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=a/c/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fc - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"No such object: - gcsfs-testing/a/c\",\n \"errors\": [\n {\n \"message\": \"No - such object: gcsfs-testing/a/c\",\n \"domain\": \"global\",\n \"reason\": - \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '239' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Fc -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -version: 1 diff --git a/gcsfs/tests/recordings/test_seek.yaml b/gcsfs/tests/recordings/test_seek.yaml deleted file mode 100644 index d033e4fe..00000000 --- a/gcsfs/tests/recordings/test_seek.yaml +++ /dev/null @@ -1,1156 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIALFJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbrIjV/LxFkoZrU2crBq6vWuUotC5uKQ1/mG2MN - eSGDCUIcgF/gWV4/ygdCxTr84P+/HB99IHep4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658610770739\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658610770739&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610770739\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CLOmsOavv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:50.790Z\",\n - \ \"updated\": \"2021-05-10T14:56:50.790Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:50.790Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CLOmsOavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658610845720\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658610845720&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658610845720\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJjwtOavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:50.871Z\",\n \"updated\": \"2021-05-10T14:56:50.871Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:50.871Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJjwtOavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658610854610\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658610854610&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658610854610\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CNK1teavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:50.879Z\",\n \"updated\": \"2021-05-10T14:56:50.879Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:50.879Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNK1teavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658610865575\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658610865575&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610865575\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CKeLtuavv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:50.898Z\",\n - \ \"updated\": \"2021-05-10T14:56:50.898Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:50.898Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKeLtuavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658610885773\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658610885773&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610885773\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CI2pt+avv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:50.909Z\",\n - \ \"updated\": \"2021-05-10T14:56:50.909Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:50.909Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CI2pt+avv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658611031767\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658611031767&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658611031767\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNedwOavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:51.051Z\",\n \"updated\": \"2021-05-10T14:56:51.051Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:51.051Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNedwOavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658611872650\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658611872650&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658611872650\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CIrH8+avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:51.892Z\",\n \"updated\": \"2021-05-10T14:56:51.892Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:51.892Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIrH8+avv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658611874405\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658611874405&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658611874405\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"COXU8+avv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:51.906Z\",\n - \ \"updated\": \"2021-05-10T14:56:51.906Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:51.906Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COXU8+avv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658611987706\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658611987706&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658611987706\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPrJ+uavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:52.007Z\",\n \"updated\": \"2021-05-10T14:56:52.007Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:52.007Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPrJ+uavv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzInx3Q-l7o1SiUIxOwXv5LXea6Aiu3RHt8Y5R06CbnsBL51cdprtR0K2eiZSaD2_zE3ln1lqs_v-Slc3oO2K25xrWT3g - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '123' - headers: - Content-Length: - - '3' - Content-Range: - - bytes 0-2/3 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzInx3Q-l7o1SiUIxOwXv5LXea6Aiu3RHt8Y5R06CbnsBL51cdprtR0K2eiZSaD2_zE3ln1lqs_v-Slc3oO2K25xrWT3g - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658612648772\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658612648772&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658612648772\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n - \ \"crc32c\": \"EHsvsg==\",\n \"etag\": \"CMT2ouevv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:52.668Z\",\n \"updated\": \"2021-05-10T14:56:52.668Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:52.668Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMT2ouevv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UzInx3Q-l7o1SiUIxOwXv5LXea6Aiu3RHt8Y5R06CbnsBL51cdprtR0K2eiZSaD2_zE3ln1lqs_v-Slc3oO2K25xrWT3g -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658612648772\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658612648772&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658612648772\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n - \ \"crc32c\": \"EHsvsg==\",\n \"etag\": \"CMT2ouevv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:52.668Z\",\n \"updated\": \"2021-05-10T14:56:52.668Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:52.668Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMT2ouevv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: - Range: - - bytes=0-2 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?alt=media&generation=1620658612648772 - response: - body: - string: '123' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '3' - Content-Range: - - bytes 0-2/3 - Content-Type: - - application/octet-stream - Etag: - - CMT2ouevv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658612648772' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658612648772&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658610845720\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658610845720&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610845720\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CJjwtOavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:50.871Z\",\n \"updated\": \"2021-05-10T14:56:50.871Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:50.871Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658610854610\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658610854610&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610854610\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CNK1teavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:50.879Z\",\n \"updated\": \"2021-05-10T14:56:50.879Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:50.879Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658611872650\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658611872650&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658611872650\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CIrH8+avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:51.892Z\",\n \"updated\": \"2021-05-10T14:56:51.892Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:51.892Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658611031767\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658611031767&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658611031767\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CNedwOavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:51.051Z\",\n \"updated\": \"2021-05-10T14:56:51.051Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:51.051Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658611987706\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658611987706&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658611987706\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CPrJ+uavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:52.007Z\",\n \"updated\": \"2021-05-10T14:56:52.007Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:52.007Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658611874405\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658611874405&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658611874405\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"COXU8+avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:51.906Z\",\n \"updated\": \"2021-05-10T14:56:51.906Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:51.906Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658610865575\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658610865575&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610865575\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CKeLtuavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:50.898Z\",\n \"updated\": \"2021-05-10T14:56:50.898Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:50.898Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658610770739\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658610770739&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610770739\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CLOmsOavv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:50.790Z\",\n \"updated\": \"2021-05-10T14:56:50.790Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:50.790Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658610885773\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658610885773&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658610885773\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CI2pt+avv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:50.909Z\",\n \"updated\": \"2021-05-10T14:56:50.909Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:50.909Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658612648772\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658612648772&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658612648772\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"3\",\n \"md5Hash\": \"ICy5YqxZB1uWSwcVLSNLcA==\",\n \"crc32c\": - \"EHsvsg==\",\n \"etag\": \"CMT2ouevv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:52.668Z\",\n \"updated\": \"2021-05-10T14:56:52.668Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:52.668Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8510' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:53 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:53 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_NjYogc6uM1L6UsAwBL2_UtXTDvk1lZ57 - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_seek_delimiter.yaml b/gcsfs/tests/recordings/test_seek_delimiter.yaml deleted file mode 100644 index bb3360ed..00000000 --- a/gcsfs/tests/recordings/test_seek_delimiter.yaml +++ /dev/null @@ -1,1061 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAOpJmWAC/4WPMQ7DIBAEv2JRJ9C7zEesE5xtFOAQdwiiyH+PSapUrla7mmL2rcBaZF6EnpjU - PKneu7pNii1lHP2M5N20i2SejWmt6Y1oCwjZs7YUDVTZjQ1U3T0HkJVKvMQrY/FpJY0RfLjET0mq - SVgXHH0IfoUXef0sHwgFy9i9+/9yfABPEENN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658667307104\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658667307104&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667307104\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COCAq4Gwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:47.327Z\",\n - \ \"updated\": \"2021-05-10T14:57:47.327Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:47.327Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COCAq4Gwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658667365988\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658667365988&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667365988\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"COTMroGwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:47.395Z\",\n - \ \"updated\": \"2021-05-10T14:57:47.395Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:47.395Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COTMroGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658667373998\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658667373998&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658667373998\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CK6Lr4Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.399Z\",\n \"updated\": \"2021-05-10T14:57:47.399Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.399Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CK6Lr4Gwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658667390173\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658667390173&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667390173\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CN2JsIGwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:47.417Z\",\n - \ \"updated\": \"2021-05-10T14:57:47.417Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:47.417Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN2JsIGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658667472488\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658667472488&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667472488\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"COiMtYGwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:47.492Z\",\n - \ \"updated\": \"2021-05-10T14:57:47.492Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:47.492Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COiMtYGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658667500805\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658667500805&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658667500805\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CIXqtoGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.520Z\",\n \"updated\": \"2021-05-10T14:57:47.520Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.520Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIXqtoGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658667513568\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658667513568&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658667513568\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CODNt4Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.544Z\",\n \"updated\": \"2021-05-10T14:57:47.544Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.544Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CODNt4Gwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658667548163\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658667548163&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658667548163\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIPcuYGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.568Z\",\n \"updated\": \"2021-05-10T14:57:47.568Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.568Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIPcuYGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658667776638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658667776638&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658667776638\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CP7Ux4Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.796Z\",\n \"updated\": \"2021-05-10T14:57:47.796Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.796Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP7Ux4Gwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658667307104\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658667307104&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667307104\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"COCAq4Gwv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:57:47.327Z\",\n - \ \"updated\": \"2021-05-10T14:57:47.327Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:57:47.327Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COCAq4Gwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json -- request: - body: null - headers: - Range: - - bytes=1-132 - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?alt=media&generation=1620658667307104 - response: - body: - string: '"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '132' - Content-Range: - - bytes 1-132/133 - Content-Type: - - application/octet-stream - Etag: - - COCAq4Gwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658667307104' - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 206 - message: Partial Content - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658667307104&alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658667373998\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658667373998&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667373998\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CK6Lr4Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.399Z\",\n \"updated\": \"2021-05-10T14:57:47.399Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.399Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658667500805\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658667500805&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667500805\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CIXqtoGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.520Z\",\n \"updated\": \"2021-05-10T14:57:47.520Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.520Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658667776638\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658667776638&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667776638\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CP7Ux4Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.796Z\",\n \"updated\": \"2021-05-10T14:57:47.796Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.796Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658667513568\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658667513568&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667513568\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CODNt4Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.544Z\",\n \"updated\": \"2021-05-10T14:57:47.544Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.544Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658667548163\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658667548163&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667548163\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CIPcuYGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.568Z\",\n \"updated\": \"2021-05-10T14:57:47.568Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.568Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658667472488\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658667472488&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667472488\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"COiMtYGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.492Z\",\n \"updated\": \"2021-05-10T14:57:47.492Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.492Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658667365988\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658667365988&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667365988\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"COTMroGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.395Z\",\n \"updated\": \"2021-05-10T14:57:47.395Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.395Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658667307104\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658667307104&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667307104\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"COCAq4Gwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.327Z\",\n \"updated\": \"2021-05-10T14:57:47.327Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.327Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658667390173\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658667390173&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658667390173\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CN2JsIGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:47.417Z\",\n \"updated\": \"2021-05-10T14:57:47.417Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:47.417Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:48 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:57:48 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_KilntTEFqS8ucxlxpr-ZJgREWyKh5Yjn - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_seekable.yaml b/gcsfs/tests/recordings/test_seekable.yaml deleted file mode 100644 index e5bf15be..00000000 --- a/gcsfs/tests/recordings/test_seekable.yaml +++ /dev/null @@ -1,327 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAAtKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz25KllYVNxZHViOXh1hTXGGvJCBhOEeDl3kZq/ - lwiyUE1D8Cs8y+tn+UCoWEcf/P+X4wNVOkHA4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw3FVOgeFzjNFV1FzKIva-3JqqhYN72iGpCusbtSnIy4t1WBPQB2ZdBkhVbz6Uy_MPZvLO5kLjpFrCsfCXqLz00Zvb7Kw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw3FVOgeFzjNFV1FzKIva-3JqqhYN72iGpCusbtSnIy4t1WBPQB2ZdBkhVbz6Uy_MPZvLO5kLjpFrCsfCXqLz00Zvb7Kw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658700880873\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658700880873&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658700880873\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COmXrJGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:20.900Z\",\n \"updated\": \"2021-05-10T14:58:20.900Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:20.900Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COmXrJGwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw3FVOgeFzjNFV1FzKIva-3JqqhYN72iGpCusbtSnIy4t1WBPQB2ZdBkhVbz6Uy_MPZvLO5kLjpFrCsfCXqLz00Zvb7Kw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658700880873\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658700880873&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658700880873\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"COmXrJGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:20.900Z\",\n \"updated\": \"2021-05-10T14:58:20.900Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:20.900Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - COmXrJGwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658700880873\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658700880873&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658700880873\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"COmXrJGwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:20.900Z\",\n \"updated\": \"2021-05-10T14:58:20.900Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:20.900Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '876' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_KHVecdTGN73rg-U9yg9N9MrB1gWQHDtA\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:21 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_KHVecdTGN73rg-U9yg9N9MrB1gWQHDtA--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_KHVecdTGN73rg-U9yg9N9MrB1gWQHDtA - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_simple.yaml b/gcsfs/tests/recordings/test_simple.yaml deleted file mode 100644 index 90a806e8..00000000 --- a/gcsfs/tests/recordings/test_simple.yaml +++ /dev/null @@ -1,97 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAG9JmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKI6Wzl4ddU6V6llYVNx6Mu8i9T8 - vUSQhWoagF/gWV4/ygdCxTr84P+/HB+YzFqe4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -version: 1 diff --git a/gcsfs/tests/recordings/test_simple_upload.yaml b/gcsfs/tests/recordings/test_simple_upload.yaml deleted file mode 100644 index 9f43b0a4..00000000 --- a/gcsfs/tests/recordings/test_simple_upload.yaml +++ /dev/null @@ -1,403 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAHlJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwoOBFC6eIbX1KRUHnaC4lZtzQ5tSjGZl1jf4NMzn7-xxAVeSOtLiL9uF0-ET7pN4Ckv_y2s8h8d4nkeLTFEE0BqSzu6w - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: zz - headers: - Content-Length: - - '2' - Content-Range: - - bytes 0-1/2 - Content-Type: - - text/plain - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwoOBFC6eIbX1KRUHnaC4lZtzQ5tSjGZl1jf4NMzn7-xxAVeSOtLiL9uF0-ET7pN4Ckv_y2s8h8d4nkeLTFEE0BqSzu6w - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658554580085\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658554580085&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658554580085\",\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"2\",\n \"md5Hash\": \"Je0by0I7C3IA9IX8X/ccjg==\",\n - \ \"crc32c\": \"7hMsNg==\",\n \"etag\": \"CPXYysuvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:55:54.601Z\",\n \"updated\": \"2021-05-10T14:55:54.601Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:55:54.601Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '704' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPXYysuvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwoOBFC6eIbX1KRUHnaC4lZtzQ5tSjGZl1jf4NMzn7-xxAVeSOtLiL9uF0-ET7pN4Ckv_y2s8h8d4nkeLTFEE0BqSzu6w -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz0dg-fimH_aQf5h5is2siaryM1rR_sTU5A2jajMhEfMZi4vWpsEUvo2FcgTJcjz1XcZCrc3xBqF7Ts25r6ObDDOb7zhQ - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: zz - headers: - Content-Length: - - '2' - Content-Range: - - bytes 0-1/2 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz0dg-fimH_aQf5h5is2siaryM1rR_sTU5A2jajMhEfMZi4vWpsEUvo2FcgTJcjz1XcZCrc3xBqF7Ts25r6ObDDOb7zhQ - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658555009054\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658555009054&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658555009054\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"2\",\n \"md5Hash\": \"Je0by0I7C3IA9IX8X/ccjg==\",\n - \ \"crc32c\": \"7hMsNg==\",\n \"etag\": \"CJ7w5Muvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:55:55.080Z\",\n \"updated\": \"2021-05-10T14:55:55.080Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:55:55.080Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJ7w5Muvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz0dg-fimH_aQf5h5is2siaryM1rR_sTU5A2jajMhEfMZi4vWpsEUvo2FcgTJcjz1XcZCrc3xBqF7Ts25r6ObDDOb7zhQ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media - response: - body: - string: zz - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '2' - Content-Type: - - application/octet-stream - Etag: - - CJ7w5Muvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1620658555009054' - X-Goog-Hash: - - crc32c=7hMsNg==,md5=Je0by0I7C3IA9IX8X/ccjg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?alt=media -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/test/1620658555009054\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test?generation=1620658555009054&alt=media\",\n - \ \"name\": \"test\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658555009054\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"2\",\n \"md5Hash\": \"Je0by0I7C3IA9IX8X/ccjg==\",\n \"crc32c\": - \"7hMsNg==\",\n \"etag\": \"CJ7w5Muvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:55:55.080Z\",\n \"updated\": \"2021-05-10T14:55:55.080Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:55:55.080Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '844' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_Outuq0OiTi-pwtREC2tpueeeWiGrq9O8\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:55:55 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_Outuq0OiTi-pwtREC2tpueeeWiGrq9O8--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_Outuq0OiTi-pwtREC2tpueeeWiGrq9O8 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_url.yaml b/gcsfs/tests/recordings/test_url.yaml deleted file mode 100644 index 6db95bda..00000000 --- a/gcsfs/tests/recordings/test_url.yaml +++ /dev/null @@ -1,1012 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAK9JmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpK/yco5aFTcWRL/nGWENeyGCC - ENUplYMfgl/hWV4/ywdCxTr64P+/HB90ZZ3Z4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658608222073\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658608222073&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608222073\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CPnelOWvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:48.244Z\",\n - \ \"updated\": \"2021-05-10T14:56:48.244Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:48.244Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPnelOWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658608272575\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658608272575&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658608272575\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CL/pl+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.303Z\",\n \"updated\": \"2021-05-10T14:56:48.303Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.303Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL/pl+Wvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658608273871\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658608273871&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608273871\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CM/zl+Wvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:48.306Z\",\n - \ \"updated\": \"2021-05-10T14:56:48.306Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:48.306Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CM/zl+Wvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658608280193\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658608280193&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658608280193\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIGlmOWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.307Z\",\n \"updated\": \"2021-05-10T14:56:48.307Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.307Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIGlmOWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658608297670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658608297670&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608297670\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CMatmeWvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:48.331Z\",\n - \ \"updated\": \"2021-05-10T14:56:48.331Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:48.331Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMatmeWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658608297279\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658608297279&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608297279\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CL+qmeWvv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:56:48.323Z\",\n - \ \"updated\": \"2021-05-10T14:56:48.323Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:56:48.323Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL+qmeWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658608466603\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658608466603&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658608466603\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKvVo+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.486Z\",\n \"updated\": \"2021-05-10T14:56:48.486Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.486Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKvVo+Wvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658609296665\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658609296665&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658609296665\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJmq1uWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:49.320Z\",\n \"updated\": \"2021-05-10T14:56:49.320Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:49.320Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJmq1uWvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658609315054\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658609315054&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658609315054\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CO651+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:49.339Z\",\n \"updated\": \"2021-05-10T14:56:49.339Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:49.339Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CO651+Wvv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658608466603\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658608466603&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658608466603\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKvVo+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.486Z\",\n \"updated\": \"2021-05-10T14:56:48.486Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.486Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CKvVo+Wvv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658608280193\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658608280193&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608280193\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CIGlmOWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.307Z\",\n \"updated\": \"2021-05-10T14:56:48.307Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.307Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658608272575\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658608272575&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608272575\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CL/pl+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.303Z\",\n \"updated\": \"2021-05-10T14:56:48.303Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.303Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658609296665\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658609296665&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658609296665\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CJmq1uWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:49.320Z\",\n \"updated\": \"2021-05-10T14:56:49.320Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:49.320Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658608466603\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658608466603&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608466603\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CKvVo+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.486Z\",\n \"updated\": \"2021-05-10T14:56:48.486Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.486Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658609315054\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658609315054&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658609315054\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CO651+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:49.339Z\",\n \"updated\": \"2021-05-10T14:56:49.339Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:49.339Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658608297279\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658608297279&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608297279\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CL+qmeWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.323Z\",\n \"updated\": \"2021-05-10T14:56:48.323Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.323Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658608297670\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658608297670&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608297670\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CMatmeWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.331Z\",\n \"updated\": \"2021-05-10T14:56:48.331Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.331Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658608222073\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658608222073&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608222073\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CPnelOWvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.244Z\",\n \"updated\": \"2021-05-10T14:56:48.244Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.244Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658608273871\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658608273871&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658608273871\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CM/zl+Wvv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:56:48.306Z\",\n \"updated\": \"2021-05-10T14:56:48.306Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:56:48.306Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '7683' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:56:49 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:56:49 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_sm79JtNU0lzLEp0P-8am2EQbeP9CFzOe - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_user_project_cat.yaml b/gcsfs/tests/recordings/test_user_project_cat.yaml deleted file mode 100644 index 76c34af1..00000000 --- a/gcsfs/tests/recordings/test_user_project_cat.yaml +++ /dev/null @@ -1,93 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAB1KmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing-requesterpays/o/foo.csv?userProject=test_project - response: - body: - string: 'a,b,c - - 1,2,3 - - 4,5,6 - - ' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Disposition: - - attachment - Content-Length: - - '18' - Content-Type: - - text/csv - Etag: - - CMmwqaSUiOYCEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - X-Goog-Generation: - - '1574780973766729' - X-Goog-Hash: - - crc32c=5AzbeQ==,md5=C+xb9vk8VHvJxndKyvheGg== - X-Goog-Metageneration: - - '1' - X-Goog-Storage-Class: - - STANDARD - status: - code: 200 - message: OK - url: https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing-requesterpays/o/foo.csv?alt=media&userProject=test_project -version: 1 diff --git a/gcsfs/tests/recordings/test_writable.yaml b/gcsfs/tests/recordings/test_writable.yaml deleted file mode 100644 index a49c8d64..00000000 --- a/gcsfs/tests/recordings/test_writable.yaml +++ /dev/null @@ -1,327 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAA1KmWAC/4XPsQ7DIAwE0F9BzC3sGfsjkQVOggoYYSNSVfn3hnbqlPFON7x7a3AOmWehJ2Y9 - Kb3vu74pzY4KjryJFJ6s7b2blWiNCCWwcZQsNNlsY6whL2QwQYjqau4iNX8vEWShmi7np45aFjYV - R1YnKgc/gF/wLK+f8oFQsY4++P8vxwcIgekt4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uydaa7bLMrk6_c7vvJA--6wKPe-BpNP19MXsFpzX6WxrV1xVTDve_vrddBmi8BqsiqOlv2sdDNR38bNYmm62CeoVd8Ipg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uydaa7bLMrk6_c7vvJA--6wKPe-BpNP19MXsFpzX6WxrV1xVTDve_vrddBmi8BqsiqOlv2sdDNR38bNYmm62CeoVd8Ipg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658702555249\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658702555249&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658702555249\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CPGwkpKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:22.575Z\",\n \"updated\": \"2021-05-10T14:58:22.575Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:22.575Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPGwkpKwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uydaa7bLMrk6_c7vvJA--6wKPe-BpNP19MXsFpzX6WxrV1xVTDve_vrddBmi8BqsiqOlv2sdDNR38bNYmm62CeoVd8Ipg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658702555249\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658702555249&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658702555249\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CPGwkpKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:22.575Z\",\n \"updated\": \"2021-05-10T14:58:22.575Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:22.575Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '750' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPGwkpKwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/tmp/test/a/1620658702555249\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa?generation=1620658702555249&alt=media\",\n - \ \"name\": \"tmp/test/a\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658702555249\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CPGwkpKwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:22.575Z\",\n \"updated\": \"2021-05-10T14:58:22.575Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:22.575Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '876' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/tmp%2Ftest%2Fa HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_4PZd-BJJ-ZP_1SfOMcmQ3gD9Yv4LcyiQ\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:22 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_4PZd-BJJ-ZP_1SfOMcmQ3gD9Yv4LcyiQ--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_4PZd-BJJ-ZP_1SfOMcmQ3gD9Yv4LcyiQ - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_write_blocks.yaml b/gcsfs/tests/recordings/test_write_blocks.yaml deleted file mode 100644 index 8864af77..00000000 --- a/gcsfs/tests/recordings/test_write_blocks.yaml +++ /dev/null @@ -1,397 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAPVJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULne1I82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmzWRWr+XiLIQjWpk8rBqyuqMdaQFzKYIMTL+SlJ - LQubiiMPwa/wLK+f5QOhYh198P9fjg+YY4lN4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwNrnf5dVtcKFLlxwW0_uLHX56voUTNqJNUqtHnkUYF6CukbPJa0xE7P6g26OkSVg_i6BdT0r-yDeJ03aSg67rYpz4X5g - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '300000' - Content-Range: - - bytes 0-299999/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwNrnf5dVtcKFLlxwW0_uLHX56voUTNqJNUqtHnkUYF6CukbPJa0xE7P6g26OkSVg_i6BdT0r-yDeJ03aSg67rYpz4X5g - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - c946b71bb69c07daf25470742c967e7c - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwNrnf5dVtcKFLlxwW0_uLHX56voUTNqJNUqtHnkUYF6CukbPJa0xE7P6g26OkSVg_i6BdT0r-yDeJ03aSg67rYpz4X5g -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '300000' - Content-Range: - - bytes 0-299999/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwNrnf5dVtcKFLlxwW0_uLHX56voUTNqJNUqtHnkUYF6CukbPJa0xE7P6g26OkSVg_i6BdT0r-yDeJ03aSg67rYpz4X5g - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - c946b71bb69c07daf25470742c967e7c - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwNrnf5dVtcKFLlxwW0_uLHX56voUTNqJNUqtHnkUYF6CukbPJa0xE7P6g26OkSVg_i6BdT0r-yDeJ03aSg67rYpz4X5g -- request: - body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - headers: - Content-Length: - - '37856' - Content-Range: - - bytes 262144-299999/300000 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwNrnf5dVtcKFLlxwW0_uLHX56voUTNqJNUqtHnkUYF6CukbPJa0xE7P6g26OkSVg_i6BdT0r-yDeJ03aSg67rYpz4X5g - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658680474517\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658680474517&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658680474517\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"300000\",\n \"md5Hash\": - \"knEtd8RvPud9esbKuk/iug==\",\n \"crc32c\": \"eRf+Fw==\",\n \"etag\": \"CJXXzoewv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:58:00.494Z\",\n \"updated\": \"2021-05-10T14:58:00.494Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:00.494Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '723' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJXXzoewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-UwNrnf5dVtcKFLlxwW0_uLHX56voUTNqJNUqtHnkUYF6CukbPJa0xE7P6g26OkSVg_i6BdT0r-yDeJ03aSg67rYpz4X5g -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658680474517\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658680474517&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658680474517\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"300000\",\n \"md5Hash\": - \"knEtd8RvPud9esbKuk/iug==\",\n \"crc32c\": \"eRf+Fw==\",\n \"etag\": \"CJXXzoewv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:58:00.494Z\",\n \"updated\": \"2021-05-10T14:58:00.494Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:00.494Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '723' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJXXzoewv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658680474517\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658680474517&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658680474517\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"300000\",\n \"md5Hash\": \"knEtd8RvPud9esbKuk/iug==\",\n \"crc32c\": - \"eRf+Fw==\",\n \"etag\": \"CJXXzoewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:00.494Z\",\n \"updated\": \"2021-05-10T14:58:00.494Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:00.494Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '849' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_n53noZGG5YYyjso5ZuBbHv7qz2QSZPh3\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:00 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_n53noZGG5YYyjso5ZuBbHv7qz2QSZPh3--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_n53noZGG5YYyjso5ZuBbHv7qz2QSZPh3 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_write_blocks2.yaml b/gcsfs/tests/recordings/test_write_blocks2.yaml deleted file mode 100644 index f6ae5ae1..00000000 --- a/gcsfs/tests/recordings/test_write_blocks2.yaml +++ /dev/null @@ -1,397 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAPlJmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc10s6+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmy2MdaQFzKYIER1hZ9z1LKwqTjyJe8iNX8vEWSh - mtQplYMfgl/hWV4/ywdCxTr64P+/HB9GPeS/4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1cR9M7m-xQ4IGXK6u3fDD-eiebgXcGIEi5KjpZIRB0dA8CxDPCEAWeoO39_20WQ8l52hoH1aoWplwbbN2J5Ok8bGdxw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: a - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262145' - Content-Range: - - bytes 0-262144/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1cR9M7m-xQ4IGXK6u3fDD-eiebgXcGIEi5KjpZIRB0dA8CxDPCEAWeoO39_20WQ8l52hoH1aoWplwbbN2J5Ok8bGdxw - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - c946b71bb69c07daf25470742c967e7c - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1cR9M7m-xQ4IGXK6u3fDD-eiebgXcGIEi5KjpZIRB0dA8CxDPCEAWeoO39_20WQ8l52hoH1aoWplwbbN2J5Ok8bGdxw -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Content-Length: - - '262145' - Content-Range: - - bytes 0-262144/* - Content-Type: - - application/octet-stream - Host: - - storage.googleapis.com - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1cR9M7m-xQ4IGXK6u3fDD-eiebgXcGIEi5KjpZIRB0dA8CxDPCEAWeoO39_20WQ8l52hoH1aoWplwbbN2J5Ok8bGdxw - response: - body: - string: '' - headers: - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Range: - - bytes=0-262143 - Server: - - UploadServer - X-Range-MD5: - - c946b71bb69c07daf25470742c967e7c - status: - code: 308 - message: Resume Incomplete - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1cR9M7m-xQ4IGXK6u3fDD-eiebgXcGIEi5KjpZIRB0dA8CxDPCEAWeoO39_20WQ8l52hoH1aoWplwbbN2J5Ok8bGdxw -- request: - body: a - headers: - Content-Length: - - '1' - Content-Range: - - bytes 262144-262144/262145 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1cR9M7m-xQ4IGXK6u3fDD-eiebgXcGIEi5KjpZIRB0dA8CxDPCEAWeoO39_20WQ8l52hoH1aoWplwbbN2J5Ok8bGdxw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp1/1620658683839124\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp1?generation=1620658683839124&alt=media\",\n - \ \"name\": \"temp1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658683839124\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262145\",\n \"md5Hash\": - \"DJiiYTGzgmo700e4zWWwog==\",\n \"crc32c\": \"Ij9VGg==\",\n \"etag\": \"CJSFnImwv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:58:03.859Z\",\n \"updated\": \"2021-05-10T14:58:03.859Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:03.859Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '727' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJSFnImwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw1cR9M7m-xQ4IGXK6u3fDD-eiebgXcGIEi5KjpZIRB0dA8CxDPCEAWeoO39_20WQ8l52hoH1aoWplwbbN2J5Ok8bGdxw -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp1 - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp1/1620658683839124\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp1?generation=1620658683839124&alt=media\",\n - \ \"name\": \"temp1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658683839124\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"262145\",\n \"md5Hash\": - \"DJiiYTGzgmo700e4zWWwog==\",\n \"crc32c\": \"Ij9VGg==\",\n \"etag\": \"CJSFnImwv/ACEAE=\",\n - \ \"timeCreated\": \"2021-05-10T14:58:03.859Z\",\n \"updated\": \"2021-05-10T14:58:03.859Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:03.859Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '727' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJSFnImwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp1 -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/temp1/1620658683839124\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp1?generation=1620658683839124&alt=media\",\n - \ \"name\": \"temp1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658683839124\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"262145\",\n \"md5Hash\": \"DJiiYTGzgmo700e4zWWwog==\",\n \"crc32c\": - \"Ij9VGg==\",\n \"etag\": \"CJSFnImwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:58:03.859Z\",\n \"updated\": \"2021-05-10T14:58:03.859Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:58:03.859Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '853' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_GmaLJP1uLcoB_e9tVtUtDcJOrTAbMyD8\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:58:04 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_GmaLJP1uLcoB_e9tVtUtDcJOrTAbMyD8--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_GmaLJP1uLcoB_e9tVtUtDcJOrTAbMyD8 - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_write_fails.yaml b/gcsfs/tests/recordings/test_write_fails.yaml deleted file mode 100644 index c6eb3c5e..00000000 --- a/gcsfs/tests/recordings/test_write_fails.yaml +++ /dev/null @@ -1,429 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIAPJJmWAC/4WPsQ7DIBBDfwUxt7Bn7I9EJ7gkqMAh7hCpqvx7Qzt1ymjLlp/fGpxD5lnoiVlP - Su/7rm9Ks6OCQ28ihSdre+9mJVojQglsHCULTTbbGGvICxlMEKK6irtIzd9LBFmoJnWO5OAvWyck - tSxsKg49AL/As7x+lA+EinX4wf9/OT4eaDG04wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw4lc6P1BozD1kB1jzfefm4klrwT98eSX3bl20y0PoKLqlbzMgmUOCUTPfkCCjx23qy54Y0UjcCXEMRjh7knhg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw4lc6P1BozD1kB1jzfefm4klrwT98eSX3bl20y0PoKLqlbzMgmUOCUTPfkCCjx23qy54Y0UjcCXEMRjh7knhg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658675894293\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658675894293&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658675894293\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJWQt4Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:55.915Z\",\n \"updated\": \"2021-05-10T14:57:55.915Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:55.915Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJWQt4Wwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uw4lc6P1BozD1kB1jzfefm4klrwT98eSX3bl20y0PoKLqlbzMgmUOCUTPfkCCjx23qy54Y0UjcCXEMRjh7knhg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658675894293\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658675894293&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658675894293\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CJWQt4Wwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:55.915Z\",\n \"updated\": \"2021-05-10T14:57:55.915Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:55.915Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJWQt4Wwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/temp -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz8HUW23VHIsRpIbTxMgpjvamapEtL5axk6Gp5NOeTUuM7Nrn4PqyP3TflmW-QftXWyDeUP5zucYagizijtNT2nrQlIIw - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz8HUW23VHIsRpIbTxMgpjvamapEtL5axk6Gp5NOeTUuM7Nrn4PqyP3TflmW-QftXWyDeUP5zucYagizijtNT2nrQlIIw - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658676602845\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658676602845&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658676602845\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CN2v4oWwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:56.675Z\",\n \"updated\": \"2021-05-10T14:57:56.675Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:56.675Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '718' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CN2v4oWwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz8HUW23VHIsRpIbTxMgpjvamapEtL5axk6Gp5NOeTUuM7Nrn4PqyP3TflmW-QftXWyDeUP5zucYagizijtNT2nrQlIIw -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/nonexistentbucket/o?uploadType=resumable - response: - body: - string: "{\n \"error\": {\n \"code\": 404,\n \"message\": \"Not Found\",\n - \ \"errors\": [\n {\n \"message\": \"Not Found\",\n \"domain\": - \"global\",\n \"reason\": \"notFound\"\n }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '193' - Content-Type: - - text/html; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 404 - message: Not Found - url: https://storage.googleapis.com/upload/storage/v1/b/nonexistentbucket/o?uploadType=resumable -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/temp/1620658676602845\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/temp\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/temp?generation=1620658676602845&alt=media\",\n - \ \"name\": \"temp\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658676602845\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CN2v4oWwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:57:56.675Z\",\n \"updated\": \"2021-05-10T14:57:56.675Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:57:56.675Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '844' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/temp HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_esJOcewnr4ebiIMb_7ntuYrAUu_LnA9R\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:57:57 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_esJOcewnr4ebiIMb_7ntuYrAUu_LnA9R--\r\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_esJOcewnr4ebiIMb_7ntuYrAUu_LnA9R - Pragma: - - no-cache - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/recordings/test_zero_cache_timeout.yaml b/gcsfs/tests/recordings/test_zero_cache_timeout.yaml deleted file mode 100644 index fe661d85..00000000 --- a/gcsfs/tests/recordings/test_zero_cache_timeout.yaml +++ /dev/null @@ -1,1184 +0,0 @@ -interactions: -- request: - body: grant_type=refresh_token&client_id=xxx&client_secret=xxx&refresh_token=xxx - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '268' - content-type: - - application/x-www-form-urlencoded - method: POST - uri: https://oauth2.googleapis.com/token - response: - body: - string: !!binary | - H4sIADpKmWAC/4WPMQ7DIBAEv4KoE+hd5iPWCc42CnCIO4SjyH+PSapULnc1K82+NTiHzLPQE7Oe - lN73Xd+UZkcFR95ECk/W9t7NSrRGhBLYOEoWmmz23FPLwqbiyOqKb4w15IUMJgjxEneRmr+XCLJQ - TeqUysEPwa/wLK+f5QOhYh198P9fjg+z0wad4wAAAA== - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Encoding: - - gzip - Content-Type: - - application/json; charset=utf-8 - Pragma: - - no-cache - Server: - - scaffolding on HTTPServer2 - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - - Referer - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - '0' - status: - code: 200 - message: OK -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '32' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/ -- request: - body: null - headers: {} - method: POST - uri: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&predefinedDefaultObjectAcl=authenticatedread&project=test_project - response: - body: - string: "{\n \"error\": {\n \"code\": 409,\n \"message\": \"You already - own this bucket. Please select another name.\",\n \"errors\": [\n {\n - \ \"message\": \"You already own this bucket. Please select another - name.\",\n \"domain\": \"global\",\n \"reason\": \"conflict\"\n - \ }\n ]\n }\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '287' - Content-Type: - - application/json; charset=UTF-8 - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 409 - message: Conflict - url: https://storage.googleapis.com/storage/v1/b/?predefinedAcl=publicReadWrite&project=test_project&predefinedDefaultObjectAcl=authenticatedread -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.1.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 100, "name": "Alice"} - - {"amount": 200, "name": "Bob"} - - {"amount": 300, "name": "Charlie"} - - {"amount": 400, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658747644026\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658747644026&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747644026\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n \"crc32c\": \"6wJAgQ==\",\n - \ \"etag\": \"CPqw0qewv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:59:07.663Z\",\n - \ \"updated\": \"2021-05-10T14:59:07.663Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:59:07.663Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CPqw0qewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "test/accounts.2.json"} - - --==0== - - Content-Type: application/octet-stream - - - {"amount": 500, "name": "Alice"} - - {"amount": 600, "name": "Bob"} - - {"amount": 700, "name": "Charlie"} - - {"amount": 800, "name": "Dennis"} - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658747729671\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658747729671&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747729671\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n \"crc32c\": \"Su+F+g==\",\n - \ \"etag\": \"CIfO16ewv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:59:07.749Z\",\n - \ \"updated\": \"2021-05-10T14:59:07.749Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:59:07.749Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '788' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIfO16ewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-02.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658747735878\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658747735878&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658747735878\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMb+16ewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.763Z\",\n \"updated\": \"2021-05-10T14:59:07.763Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.763Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CMb+16ewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658747831569\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658747831569&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747831569\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n \"crc32c\": \"MaqBTg==\",\n - \ \"etag\": \"CJHq3aewv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:59:07.851Z\",\n - \ \"updated\": \"2021-05-10T14:59:07.851Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:59:07.851Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CJHq3aewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-01.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Alice,100,1 - - Bob,200,2 - - Charlie,300,3 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658747833424\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658747833424&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658747833424\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CND43aewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.865Z\",\n \"updated\": \"2021-05-10T14:59:07.865Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.865Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CND43aewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/nested2/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658747930499\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658747930499&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747930499\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n \"crc32c\": \"NT3Yvg==\",\n - \ \"etag\": \"CIPv46ewv/ACEAE=\",\n \"timeCreated\": \"2021-05-10T14:59:07.950Z\",\n - \ \"updated\": \"2021-05-10T14:59:07.950Z\",\n \"timeStorageClassUpdated\": - \"2021-05-10T14:59:07.950Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '790' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIPv46ewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file2"} - - --==0== - - Content-Type: application/octet-stream - - - world - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658747938773\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658747938773&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658747938773\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNWv5Kewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.964Z\",\n \"updated\": \"2021-05-10T14:59:07.964Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.964Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CNWv5Kewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "nested/file1"} - - --==0== - - Content-Type: application/octet-stream - - - hello - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658747941310\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658747941310&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658747941310\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CL7D5Kewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.974Z\",\n \"updated\": \"2021-05-10T14:59:07.974Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.974Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '754' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CL7D5Kewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: '--==0== - - Content-Type: application/json; charset=UTF-8 - - - {"name": "2014-01-03.csv"} - - --==0== - - Content-Type: application/octet-stream - - - name,amount,id - - Dennis,400,4 - - Edith,500,5 - - Frank,600,6 - - - --==0==--' - headers: - Content-Type: - - multipart/related; boundary="==0==" - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658748132861\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658748132861&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658748132861\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CP2b8Kewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:08.152Z\",\n \"updated\": \"2021-05-10T14:59:08.152Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:08.152Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CP2b8Kewv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=multipart -- request: - body: null - headers: - X-Upload-Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable - response: - body: - string: '' - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Location: - - https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz3KcWnnvBU3w6UWVExXqDgU_DPKhrWH4DcvC_R_sTMqh7BUOkqS-XS1Pj5zJTH3W9cFLSZuRv7KKgAnwelPUXeLzMDSg - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable -- request: - body: '' - headers: - Content-Length: - - '0' - Content-Range: - - bytes */0 - Content-Type: - - application/octet-stream - method: POST - uri: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz3KcWnnvBU3w6UWVExXqDgU_DPKhrWH4DcvC_R_sTMqh7BUOkqS-XS1Pj5zJTH3W9cFLSZuRv7KKgAnwelPUXeLzMDSg - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658748722050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658748722050&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658748722050\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIKXlKiwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:08.742Z\",\n \"updated\": \"2021-05-10T14:59:08.742Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:08.742Z\"\n}\n" - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '730' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIKXlKiwv/ACEAE= - Pragma: - - no-cache - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/upload/storage/v1/b/gcsfs-testing/o?uploadType=resumable&upload_id=ABg5-Uz3KcWnnvBU3w6UWVExXqDgU_DPKhrWH4DcvC_R_sTMqh7BUOkqS-XS1Pj5zJTH3W9cFLSZuRv7KKgAnwelPUXeLzMDSg -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658748722050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658748722050&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658748722050\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CIKXlKiwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:08.742Z\",\n \"updated\": \"2021-05-10T14:59:08.742Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:08.742Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '856' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?prefix=a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile - response: - body: - string: "{\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658748722050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658748722050&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658748722050\",\n \"metageneration\": \"1\",\n \"contentType\": \"application/octet-stream\",\n - \ \"storageClass\": \"STANDARD\",\n \"size\": \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n - \ \"crc32c\": \"AAAAAA==\",\n \"etag\": \"CIKXlKiwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:08.742Z\",\n \"updated\": \"2021-05-10T14:59:08.742Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:08.742Z\"\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '730' - Content-Type: - - application/json; charset=UTF-8 - Etag: - - CIKXlKiwv/ACEAE= - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=%2F&prefix=a%2F - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658748722050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658748722050&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658748722050\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CIKXlKiwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:08.742Z\",\n \"updated\": \"2021-05-10T14:59:08.742Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:08.742Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '856' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/?delimiter=/&prefix=a/ -- request: - body: null - headers: {} - method: GET - uri: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ - response: - body: - string: "{\n \"kind\": \"storage#objects\",\n \"items\": [\n {\n \"kind\": - \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-01.csv/1620658747833424\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-01.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-01.csv?generation=1620658747833424&alt=media\",\n - \ \"name\": \"2014-01-01.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747833424\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"51\",\n \"md5Hash\": \"Auycd2AT7x5m8G1W0NXcuA==\",\n - \ \"crc32c\": \"yR1u0w==\",\n \"etag\": \"CND43aewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.865Z\",\n \"updated\": \"2021-05-10T14:59:07.865Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.865Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-02.csv/1620658747735878\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-02.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-02.csv?generation=1620658747735878&alt=media\",\n - \ \"name\": \"2014-01-02.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747735878\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"15\",\n \"md5Hash\": \"cGwL6TebGKiJzgyNBJNb6Q==\",\n - \ \"crc32c\": \"Mpt4QQ==\",\n \"etag\": \"CMb+16ewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.763Z\",\n \"updated\": \"2021-05-10T14:59:07.763Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.763Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/2014-01-03.csv/1620658748132861\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/2014-01-03.csv\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/2014-01-03.csv?generation=1620658748132861&alt=media\",\n - \ \"name\": \"2014-01-03.csv\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658748132861\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"52\",\n \"md5Hash\": \"9keZXdUu0YtMynECFSOiMg==\",\n - \ \"crc32c\": \"x/fq7w==\",\n \"etag\": \"CP2b8Kewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:08.152Z\",\n \"updated\": \"2021-05-10T14:59:08.152Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:08.152Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/a/file/1620658748722050\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/a%2Ffile\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/a%2Ffile?generation=1620658748722050&alt=media\",\n - \ \"name\": \"a/file\",\n \"bucket\": \"gcsfs-testing\",\n \"generation\": - \"1620658748722050\",\n \"metageneration\": \"1\",\n \"contentType\": - \"application/octet-stream\",\n \"storageClass\": \"STANDARD\",\n \"size\": - \"0\",\n \"md5Hash\": \"1B2M2Y8AsgTpgAmY7PhCfg==\",\n \"crc32c\": - \"AAAAAA==\",\n \"etag\": \"CIKXlKiwv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:08.742Z\",\n \"updated\": \"2021-05-10T14:59:08.742Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:08.742Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file1/1620658747941310\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile1?generation=1620658747941310&alt=media\",\n - \ \"name\": \"nested/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747941310\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CL7D5Kewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.974Z\",\n \"updated\": \"2021-05-10T14:59:07.974Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.974Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/file2/1620658747938773\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Ffile2?generation=1620658747938773&alt=media\",\n - \ \"name\": \"nested/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747938773\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CNWv5Kewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.964Z\",\n \"updated\": \"2021-05-10T14:59:07.964Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.964Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file1/1620658747930499\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1?generation=1620658747930499&alt=media\",\n - \ \"name\": \"nested/nested2/file1\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747930499\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"6\",\n \"md5Hash\": \"sZRqySSS0jR8YjW00mERhA==\",\n - \ \"crc32c\": \"NT3Yvg==\",\n \"etag\": \"CIPv46ewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.950Z\",\n \"updated\": \"2021-05-10T14:59:07.950Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.950Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/nested/nested2/file2/1620658747831569\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2?generation=1620658747831569&alt=media\",\n - \ \"name\": \"nested/nested2/file2\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747831569\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"5\",\n \"md5Hash\": \"fXkwN6B2AYZXSwKC8vQ15w==\",\n - \ \"crc32c\": \"MaqBTg==\",\n \"etag\": \"CJHq3aewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.851Z\",\n \"updated\": \"2021-05-10T14:59:07.851Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.851Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.1.json/1620658747644026\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json?generation=1620658747644026&alt=media\",\n - \ \"name\": \"test/accounts.1.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747644026\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"xK7pmJz/Oj5HGIyfQpYTig==\",\n - \ \"crc32c\": \"6wJAgQ==\",\n \"etag\": \"CPqw0qewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.663Z\",\n \"updated\": \"2021-05-10T14:59:07.663Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.663Z\"\n },\n - \ {\n \"kind\": \"storage#object\",\n \"id\": \"gcsfs-testing/test/accounts.2.json/1620658747729671\",\n - \ \"selfLink\": \"https://www.googleapis.com/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json\",\n - \ \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json?generation=1620658747729671&alt=media\",\n - \ \"name\": \"test/accounts.2.json\",\n \"bucket\": \"gcsfs-testing\",\n - \ \"generation\": \"1620658747729671\",\n \"metageneration\": \"1\",\n - \ \"contentType\": \"application/octet-stream\",\n \"storageClass\": - \"STANDARD\",\n \"size\": \"133\",\n \"md5Hash\": \"bjhC5OCrzKV+8MGMCF2BQA==\",\n - \ \"crc32c\": \"Su+F+g==\",\n \"etag\": \"CIfO16ewv/ACEAE=\",\n \"timeCreated\": - \"2021-05-10T14:59:07.749Z\",\n \"updated\": \"2021-05-10T14:59:07.749Z\",\n - \ \"timeStorageClassUpdated\": \"2021-05-10T14:59:07.749Z\"\n }\n ]\n}\n" - headers: - Cache-Control: - - private, max-age=0, must-revalidate, no-transform - Content-Length: - - '8490' - Content-Type: - - application/json; charset=UTF-8 - Server: - - UploadServer - Vary: - - Origin - - X-Origin - status: - code: 200 - message: OK - url: https://storage.googleapis.com/storage/v1/b/gcsfs-testing/o/ -- request: - body: ' - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-01.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-02.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/2014-01-03.csv HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/a%2Ffile HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile1 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/nested%2Fnested2%2Ffile2 HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.1.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156== - - Content-Type: application/http - - Content-Transfer-Encoding: binary - - Content-ID: - - - DELETE /storage/v1/b/gcsfs-testing/o/test%2Faccounts.2.json HTTP/1.1 - - Content-Type: application/json - - accept: application/json - - content-length: 0 - - - --===============7330845974216740156==--' - headers: - Content-Type: - - multipart/mixed; boundary="===============7330845974216740156==" - method: POST - uri: https://storage.googleapis.com/batch/storage/v1 - response: - body: - string: "--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: application/http\r\nContent-ID: - \r\n\r\nHTTP/1.1 204 No Content\r\nContent-Type: - application/json\r\nDate: Mon, 10 May 2021 14:59:09 GMT\r\nCache-Control: - no-cache, no-store, max-age=0, must-revalidate\r\nExpires: Mon, 01 Jan 1990 - 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI\r\nContent-Type: - application/http\r\nContent-ID: \r\n\r\nHTTP/1.1 - 204 No Content\r\nContent-Type: application/json\r\nDate: Mon, 10 May 2021 - 14:59:09 GMT\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nExpires: - Mon, 01 Jan 1990 00:00:00 GMT\r\nContent-Length: 0\r\n\r\n\r\n--batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI--\r\n" - headers: - Cache-Control: - - private, max-age=0 - Content-Encoding: - - gzip - Content-Type: - - multipart/mixed; boundary=batch_iPJDxWmlnY_R-1HSgTsiJcFqlUEBCsrI - Server: - - Upload Server - Transfer-Encoding: - - chunked - Vary: - - Origin - - X-Origin - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - SAMEORIGIN - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK - url: https://storage.googleapis.com/batch/storage/v1 -version: 1 diff --git a/gcsfs/tests/settings.py b/gcsfs/tests/settings.py index 0277bd84..e535d925 100644 --- a/gcsfs/tests/settings.py +++ b/gcsfs/tests/settings.py @@ -1,37 +1,5 @@ -import json import os -import gcsfs.core -import gcsfs.credentials -RECORD_MODE = os.environ.get("GCSFS_RECORD_MODE", "none") -TEST_PROJECT = os.environ.get("GCSFS_TEST_PROJECT", "test_project") - -TEST_BUCKET = os.environ.get("GCSFS_TEST_BUCKET", "gcsfs-testing") -TEST_REQUESTER_PAYS_BUCKET = os.environ.get( - "GCSFS_TEST_REQUESTER_PAYS_BUCKET", "gcsfs-testing-requesterpays" -) - -FAKE_TOKEN = { - "access_token": "xxx", - "expires_in": 0, - "grant_type": "refresh_token", - "refresh_token": "xxx", - "timestamp": 1487859400.0, -} - -FAKE_TOKEN.update(gcsfs.credentials.not_secret) - -FAKE_GOOGLE_TOKEN = { - "client_id": ( - "764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur." "apps.googleusercontent.com" - ), - "client_secret": "d-FL95Q19q7MQmFpd7hHD0Ty", - "refresh_token": "xxx", - "type": "authorized_user", -} -GOOGLE_TOKEN = os.environ.get("GCSFS_GOOGLE_TOKEN", FAKE_GOOGLE_TOKEN) -ON_VCR = "GCSFS_GOOGLE_TOKEN" not in os.environ - -if isinstance(GOOGLE_TOKEN, str) and os.path.exists(GOOGLE_TOKEN): - with open(GOOGLE_TOKEN) as f: - GOOGLE_TOKEN = json.load(f) +TEST_BUCKET = os.environ.get("GCSFS_TEST_BUCKET", "gcsfs_test") +TEST_PROJECT = os.environ.get("GCSFS_TEST_PROJECT", "project") +TEST_REQUESTER_PAYS_BUCKET = "gcsfs_test_req_pay" diff --git a/gcsfs/tests/test_core.py b/gcsfs/tests/test_core.py index 807e7e2e..4824fd20 100644 --- a/gcsfs/tests/test_core.py +++ b/gcsfs/tests/test_core.py @@ -10,48 +10,34 @@ from fsspec.utils import seek_delimiter -from gcsfs.tests.settings import ( - TEST_PROJECT, - GOOGLE_TOKEN, - TEST_BUCKET, - TEST_REQUESTER_PAYS_BUCKET, - ON_VCR, -) -from gcsfs.tests.utils import ( - tempdir, - my_vcr, - gcs_maker, +from gcsfs.tests.settings import TEST_BUCKET, TEST_PROJECT, TEST_REQUESTER_PAYS_BUCKET +from gcsfs.tests.conftest import ( files, csv_files, text_files, a, b, - tmpfile, ) +from gcsfs.tests.utils import tempdir, tmpfile from gcsfs.core import GCSFileSystem, quote_plus from gcsfs.credentials import GoogleCredentials import gcsfs.checkers from gcsfs import __version__ as version -pytestmark = pytest.mark.usefixtures("token_restore") - -@my_vcr.use_cassette(match=["all"]) -def test_simple(): +def test_simple(gcs): assert not GoogleCredentials.tokens - gcs = GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN) gcs.ls(TEST_BUCKET) # no error gcs.ls("/" + TEST_BUCKET) # OK to lead with '/' -@my_vcr.use_cassette(match=["all"]) -def test_many_connect(): +def test_many_connect(docker_gcs): from multiprocessing.pool import ThreadPool - GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN) + GCSFileSystem(endpoint_url=docker_gcs) def task(i): - GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN).ls("") + GCSFileSystem(endpoint_url=docker_gcs).ls("") return True pool = ThreadPool(processes=20) @@ -61,13 +47,12 @@ def task(i): pool.join() -@my_vcr.use_cassette(match=["all"]) -def test_many_connect_new(): +def test_many_connect_new(docker_gcs): from multiprocessing.pool import ThreadPool def task(i): # first instance is made within thread - creating loop - GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN).ls("") + GCSFileSystem(endpoint_url=docker_gcs).ls("") return True pool = ThreadPool(processes=20) @@ -77,908 +62,797 @@ def task(i): pool.join() -@my_vcr.use_cassette(match=["all"]) -def test_simple_upload(): - with gcs_maker() as gcs: - fn = TEST_BUCKET + "/test" - with gcs.open(fn, "wb", content_type="text/plain") as f: - f.write(b"zz") - with gcs.open(fn, "wb") as f: - f.write(b"zz") - assert gcs.cat(fn) == b"zz" +def test_simple_upload(gcs): + fn = TEST_BUCKET + "/test" + with gcs.open(fn, "wb", content_type="text/plain") as f: + f.write(b"zz") + with gcs.open(fn, "wb") as f: + f.write(b"zz") + assert gcs.cat(fn) == b"zz" -@my_vcr.use_cassette(match=["all"]) -def test_large_upload(): +def test_large_upload(gcs): orig = gcsfs.core.GCS_MAX_BLOCK_SIZE gcsfs.core.GCS_MAX_BLOCK_SIZE = 262144 # minimum block size try: - with gcs_maker() as gcs: - fn = TEST_BUCKET + "/test" - d = b"7123" * 262144 - with gcs.open(fn, "wb", content_type="application/octet-stream") as f: - f.write(d) - assert gcs.cat(fn) == d + fn = TEST_BUCKET + "/test" + d = b"7123" * 262144 + with gcs.open(fn, "wb", content_type="application/octet-stream") as f: + f.write(d) + assert gcs.cat(fn) == d finally: gcsfs.core.GCS_MAX_BLOCK_SIZE = orig -@pytest.mark.xfail(reason="oddness in repeat VCR calls") -@my_vcr.use_cassette(match=["all"]) -def test_multi_upload(): - with gcs_maker() as gcs: - fn = TEST_BUCKET + "/test" - d = b"01234567" * 2 ** 15 +def test_multi_upload(gcs): + fn = TEST_BUCKET + "/test" + d = b"01234567" * 2 ** 15 + + # something to write on close + with gcs.open(fn, "wb", content_type="text/plain", block_size=2 ** 18) as f: + f.write(d) + f.write(b"xx") + assert gcs.cat(fn) == d + b"xx" + assert gcs.info(fn)["contentType"] == "text/plain" + # empty buffer on close + with gcs.open(fn, "wb", content_type="text/plain", block_size=2 ** 19) as f: + f.write(d) + f.write(b"xx") + f.write(d) + assert gcs.cat(fn) == d + b"xx" + d + assert gcs.info(fn)["contentType"] == "text/plain" + + fn = TEST_BUCKET + "/test" + d = b"01234567" * 2 ** 15 + + # something to write on close + with gcs.open(fn, "wb", block_size=2 ** 18) as f: + f.write(d) + f.write(b"xx") + assert gcs.cat(fn) == d + b"xx" + assert gcs.info(fn)["contentType"] == "application/octet-stream" + # empty buffer on close + with gcs.open(fn, "wb", block_size=2 ** 19) as f: + f.write(d) + f.write(b"xx") + f.write(d) + assert gcs.cat(fn) == d + b"xx" + d + assert gcs.info(fn)["contentType"] == "application/octet-stream" + + +def test_info(gcs): + gcs.touch(a) + assert gcs.info(a) == gcs.ls(a, detail=True)[0] + + +def test_ls2(gcs): + assert TEST_BUCKET + "/" in gcs.ls("") + with pytest.raises((OSError, IOError)): + gcs.ls("nonexistent") + fn = TEST_BUCKET + "/test/accounts.1.json" + gcs.touch(fn) + assert fn in gcs.ls(TEST_BUCKET + "/test") + + +def test_pickle(gcs): + import pickle - # something to write on close - with gcs.open(fn, "wb", content_type="text/plain", block_size=2 ** 18) as f: - f.write(d) - f.write(b"xx") - assert gcs.cat(fn) == d + b"xx" - assert gcs.info(fn)["contentType"] == "text/plain" - # empty buffer on close - with gcs.open(fn, "wb", content_type="text/plain", block_size=2 ** 19) as f: - f.write(d) - f.write(b"xx") - f.write(d) - assert gcs.cat(fn) == d + b"xx" + d - assert gcs.info(fn)["contentType"] == "text/plain" + # Write data to distinct filename + fn = TEST_BUCKET + "/nested/abcdefg" + with gcs.open(fn, "wb") as f: + f.write(b"1234567") - # if content-type is not provided then default should be application/octet-stream - with gcs_maker() as gcs: - fn = TEST_BUCKET + "/test" - d = b"01234567" * 2 ** 15 + # verify that that filename is not in the serialized form + b = pickle.dumps(gcs) + assert b"abcdefg" not in b + assert b"1234567" not in b + assert b"listing_cache" not in b - # something to write on close - with gcs.open(fn, "wb", block_size=2 ** 18) as f: - f.write(d) - f.write(b"xx") - assert gcs.cat(fn) == d + b"xx" - assert gcs.info(fn)["contentType"] == "application/octet-stream" - # empty buffer on close - with gcs.open(fn, "wb", block_size=2 ** 19) as f: - f.write(d) - f.write(b"xx") - f.write(d) - assert gcs.cat(fn) == d + b"xx" + d - assert gcs.info(fn)["contentType"] == "application/octet-stream" + gcs2 = pickle.loads(b) + # since https://github.com/intake/filesystem_spec/pull/155 + assert gcs.session is gcs2.session + gcs.touch(a) + assert gcs.ls(TEST_BUCKET) == gcs2.ls(TEST_BUCKET) -@my_vcr.use_cassette(match=["all"]) -def test_info(): - with gcs_maker() as gcs: - gcs.touch(a) - assert gcs.info(a) == gcs.ls(a, detail=True)[0] +def test_ls_touch(gcs): + assert not gcs.exists(TEST_BUCKET + "/tmp/test") -@my_vcr.use_cassette(match=["all"]) -def test_ls2(): - with gcs_maker() as gcs: - assert TEST_BUCKET + "/" in gcs.ls("") - with pytest.raises((OSError, IOError)): - gcs.ls("nonexistent") - fn = TEST_BUCKET + "/test/accounts.1.json" - gcs.touch(fn) - assert fn in gcs.ls(TEST_BUCKET + "/test") + gcs.touch(a) + gcs.touch(b) + L = gcs.ls(TEST_BUCKET + "/tmp/test", False) + assert set(L) == set([a, b]) -@my_vcr.use_cassette(match=["all"]) -def test_pickle(): - import pickle + L_d = gcs.ls(TEST_BUCKET + "/tmp/test", True) + assert set(d["name"] for d in L_d) == set([a, b]) - with gcs_maker() as gcs: - # Write data to distinct filename - fn = TEST_BUCKET + "/nested/abcdefg" - with gcs.open(fn, "wb") as f: - f.write(b"1234567") +def test_rm(gcs): + assert not gcs.exists(a) + gcs.touch(a) + assert gcs.exists(a) + gcs.rm(a) + assert not gcs.exists(a) + # silently ignored for now + # with pytest.raises((OSError, IOError)): + # gcs.rm(TEST_BUCKET + "/nonexistent") + with pytest.raises((OSError, IOError)): + gcs.rm("nonexistent") - # verify that that filename is not in the serialized form - b = pickle.dumps(gcs) - assert b"abcdefg" not in b - assert b"1234567" not in b - assert b"listing_cache" not in b - gcs2 = pickle.loads(b) +def test_rm_batch(gcs): + gcs.touch(a) + gcs.touch(b) + assert a in gcs.find(TEST_BUCKET) + assert b in gcs.find(TEST_BUCKET) + gcs.rm([a, b]) + assert a not in gcs.find(TEST_BUCKET) + assert b not in gcs.find(TEST_BUCKET) - # since https://github.com/intake/filesystem_spec/pull/155 - assert gcs.session is gcs2.session - gcs.touch(a) - assert gcs.ls(TEST_BUCKET) == gcs2.ls(TEST_BUCKET) +def test_rm_recursive(gcs): + files = ["/a", "/a/b", "/a/c"] + for fn in files: + gcs.touch(TEST_BUCKET + fn) + gcs.rm(TEST_BUCKET + files[0], True) + assert not gcs.exists(TEST_BUCKET + files[-1]) + + +def test_file_access(gcs): + fn = TEST_BUCKET + "/nested/file1" + data = b"hello\n" + with gcs.open(fn, "wb") as f: + f.write(data) + assert gcs.cat(fn) == data + assert gcs.head(fn, 3) == data[:3] + assert gcs.tail(fn, 3) == data[-3:] + assert gcs.tail(fn, 10000) == data + + +def test_file_info(gcs): + fn = TEST_BUCKET + "/nested/file1" + data = b"hello\n" + with gcs.open(fn, "wb") as f: + f.write(data) + assert fn in gcs.find(TEST_BUCKET) + assert gcs.exists(fn) + assert not gcs.exists(fn + "another") + assert gcs.info(fn)["size"] == len(data) + with pytest.raises((OSError, IOError)): + gcs.info(fn + "another") + + +def test_du(gcs): + d = gcs.du(TEST_BUCKET, total=False) + assert all(isinstance(v, int) and v >= 0 for v in d.values()) + assert TEST_BUCKET + "/nested/file1" in d + + assert gcs.du(TEST_BUCKET + "/test/", total=True) == sum(map(len, files.values())) + + +def test_ls(gcs): + fn = TEST_BUCKET + "/nested/file1" + gcs.touch(fn) + + assert fn not in gcs.ls(TEST_BUCKET + "/") + assert fn in gcs.ls(TEST_BUCKET + "/nested/") + assert fn in gcs.ls(TEST_BUCKET + "/nested") + + +def test_ls_detail(gcs): + L = gcs.ls(TEST_BUCKET + "/nested", detail=True) + assert all(isinstance(item, dict) for item in L) + + +def test_gcs_glob(gcs): + fn = TEST_BUCKET + "/nested/file1" + assert fn not in gcs.glob(TEST_BUCKET + "/") + assert fn not in gcs.glob(TEST_BUCKET + "/*") + assert fn in gcs.glob(TEST_BUCKET + "/nested/") + assert fn in gcs.glob(TEST_BUCKET + "/nested/*") + assert fn in gcs.glob(TEST_BUCKET + "/nested/file*") + assert fn in gcs.glob(TEST_BUCKET + "/*/*") + assert fn in gcs.glob(TEST_BUCKET + "/**") + assert fn in gcs.glob(TEST_BUCKET + "/**1") + assert all( + f in gcs.find(TEST_BUCKET) + for f in gcs.glob(TEST_BUCKET + "/nested/*") + if gcs.isfile(f) + ) + # Ensure the glob only fetches prefixed folders + gcs.dircache.clear() + gcs.glob(TEST_BUCKET + "/nested**1") + assert all(d.startswith(TEST_BUCKET + "/nested") for d in gcs.dircache) + gcs.glob(TEST_BUCKET + "/test*") + assert TEST_BUCKET + "/test" in gcs.dircache + + +def test_read_keys_from_bucket(gcs): + for k, data in files.items(): + file_contents = gcs.cat("/".join([TEST_BUCKET, k])) + assert file_contents == data + + assert all( + gcs.cat("/".join([TEST_BUCKET, k])) + == gcs.cat("gcs://" + "/".join([TEST_BUCKET, k])) + for k in files + ) + + +def test_url(gcs): + fn = TEST_BUCKET + "/nested/file1" + url = gcs.url(fn) + assert "http" in url + assert quote_plus("nested/file1") in url + with gcs.open(fn) as f: + assert "http" in f.url() + + +def test_seek(gcs): + with gcs.open(a, "wb") as f: + f.write(b"123") + + with gcs.open(a) as f: + f.seek(1000) + with pytest.raises(ValueError): + f.seek(-1) + with pytest.raises(ValueError): + f.seek(-5, 2) + with pytest.raises(ValueError): + f.seek(0, 10) + f.seek(0) + assert f.read(1) == b"1" + f.seek(0) + assert f.read(1) == b"1" + f.seek(3) + assert f.read(1) == b"" + f.seek(-1, 2) + assert f.read(1) == b"3" + f.seek(-1, 1) + f.seek(-1, 1) + assert f.read(1) == b"2" + for i in range(4): + assert f.seek(i) == i + + +def test_bad_open(gcs): + with pytest.raises((IOError, OSError)): + gcs.open("") + + +def test_copy(gcs): + fn = TEST_BUCKET + "/test/accounts.1.json" + gcs.copy(fn, fn + "2") + assert gcs.cat(fn) == gcs.cat(fn + "2") + + +def test_copy_recursive(gcs): + src = TEST_BUCKET + "/nested" + dest = TEST_BUCKET + "/dest" + gcs.copy(src, dest, recursive=True) + for fn in gcs.ls(dest): + if not gcs.isdir(fn): + assert gcs.cat(fn) == gcs.cat(fn.replace("dest", "nested")) + + +def test_copy_errors(gcs): + src = TEST_BUCKET + "/test/" + file1 = TEST_BUCKET + "/test/accounts.1.json" + file2 = TEST_BUCKET + "/test/accounts.2.json" + dne = TEST_BUCKET + "/test/notafile" + dest1 = TEST_BUCKET + "/dest1/" + dest2 = TEST_BUCKET + "/dest2/" + + # Non recursive should raise an error unless we specify ignore + with pytest.raises(FileNotFoundError): + gcs.copy([file1, file2, dne], dest1) + + gcs.copy([file1, file2, dne], dest1, on_error="ignore") + assert gcs.ls(dest1) == [dest1 + "accounts.1.json", dest1 + "accounts.2.json"] + + # Recursive should raise an error only if we specify raise + # the patch simulates the filesystem finding a file that does not exist in the directory + current_files = gcs.expand_path(src, recursive=True) + with mock.patch.object(gcs, "expand_path", return_value=current_files + [dne]): + with pytest.raises(FileNotFoundError): + gcs.copy(src, dest2, recursive=True, on_error="raise") + + gcs.copy(src, dest2, recursive=True) + assert gcs.ls(dest2) == [ + dest2 + "accounts.1.json", + dest2 + "accounts.2.json", + ] -@my_vcr.use_cassette(match=["all"]) -def test_ls_touch(): - with gcs_maker() as gcs: - assert not gcs.exists(TEST_BUCKET + "/tmp/test") - gcs.touch(a) - gcs.touch(b) +def test_move(gcs): + fn = TEST_BUCKET + "/test/accounts.1.json" + data = gcs.cat(fn) + gcs.mv(fn, fn + "2") + assert gcs.cat(fn + "2") == data + assert not gcs.exists(fn) - L = gcs.ls(TEST_BUCKET + "/tmp/test", False) - assert set(L) == set([a, b]) - L_d = gcs.ls(TEST_BUCKET + "/tmp/test", True) - assert set(d["name"] for d in L_d) == set([a, b]) +def test_cat_file(gcs): + fn = TEST_BUCKET + "/test/accounts.1.json" + data = gcs.cat_file(fn) + assert data[1:10] == gcs.cat_file(fn, start=1, end=10) + assert data[1:] == gcs.cat_file(fn, start=1) + assert data[:1] == gcs.cat_file(fn, end=1) -@my_vcr.use_cassette(match=["all"]) -def test_rm(): - with gcs_maker() as gcs: - assert not gcs.exists(a) - gcs.touch(a) - assert gcs.exists(a) - gcs.rm(a) - assert not gcs.exists(a) - # silently ignored for now - # with pytest.raises((OSError, IOError)): - # gcs.rm(TEST_BUCKET + "/nonexistent") - with pytest.raises((OSError, IOError)): - gcs.rm("nonexistent") +@pytest.mark.parametrize("consistency", [None, "size", "md5", "crc32c"]) +def test_get_put(consistency, gcs): + if consistency == "crc32c" and gcsfs.checkers.crcmod is None: + pytest.skip("No CRC") + if consistency == "size" and not gcs.on_google: + pytest.skip("emulator does not return size") + gcs.consistency = consistency + with tmpfile() as fn: + gcs.get(TEST_BUCKET + "/test/accounts.1.json", fn) + data = files["test/accounts.1.json"] + assert open(fn, "rb").read() == data + gcs.put(fn, TEST_BUCKET + "/temp") + assert gcs.du(TEST_BUCKET + "/temp") == len(data) + assert gcs.cat(TEST_BUCKET + "/temp") == data -@my_vcr.use_cassette(match=["all"]) -def test_rm_batch(): - with gcs_maker() as gcs: - gcs.touch(a) - gcs.touch(b) - assert a in gcs.find(TEST_BUCKET) - assert b in gcs.find(TEST_BUCKET) - gcs.rm([a, b]) - assert a not in gcs.find(TEST_BUCKET) - assert b not in gcs.find(TEST_BUCKET) +def test_get_put_list(gcs): + with tmpfile() as fn: + gcs.get([TEST_BUCKET + "/test/accounts.1.json"], [fn]) + data = files["test/accounts.1.json"] + assert open(fn, "rb").read() == data + gcs.put([fn], [TEST_BUCKET + "/temp"]) + assert gcs.du(TEST_BUCKET + "/temp") == len(data) + assert gcs.cat(TEST_BUCKET + "/temp") == data -@my_vcr.use_cassette(match=["all"]) -def test_rm_recursive(): - files = ["/a", "/a/b", "/a/c"] - with gcs_maker() as gcs: - for fn in files: - gcs.touch(TEST_BUCKET + fn) - gcs.rm(TEST_BUCKET + files[0], True) - assert not gcs.exists(TEST_BUCKET + files[-1]) - - -@my_vcr.use_cassette(match=["all"]) -def test_file_access(): - with gcs_maker() as gcs: - fn = TEST_BUCKET + "/nested/file1" - data = b"hello\n" - with gcs.open(fn, "wb") as f: - f.write(data) - assert gcs.cat(fn) == data - assert gcs.head(fn, 3) == data[:3] - assert gcs.tail(fn, 3) == data[-3:] - assert gcs.tail(fn, 10000) == data - - -@my_vcr.use_cassette(match=["all"]) -def test_file_info(): - with gcs_maker() as gcs: - fn = TEST_BUCKET + "/nested/file1" - data = b"hello\n" - with gcs.open(fn, "wb") as f: - f.write(data) - assert fn in gcs.find(TEST_BUCKET) - assert gcs.exists(fn) - assert not gcs.exists(fn + "another") - assert gcs.info(fn)["size"] == len(data) - with pytest.raises((OSError, IOError)): - gcs.info(fn + "another") - - -@my_vcr.use_cassette(match=["all"]) -def test_du(): - with gcs_maker(True) as gcs: - d = gcs.du(TEST_BUCKET, total=False) - assert all(isinstance(v, int) and v >= 0 for v in d.values()) - assert TEST_BUCKET + "/nested/file1" in d - - assert gcs.du(TEST_BUCKET + "/test/", total=True) == sum( - map(len, files.values()) +@pytest.mark.parametrize("protocol", ["", "gs://", "gcs://"]) +def test_get_put_recursive(protocol, gcs): + with tempdir() as dn: + gcs.get(protocol + TEST_BUCKET + "/test/", dn + "/temp_dir", recursive=True) + # there is now in local directory: + # dn+'/temp_dir/accounts.1.json' + # dn+'/temp_dir/accounts.2.json' + data1 = files["test/accounts.1.json"] + data2 = files["test/accounts.2.json"] + assert open(dn + "/temp_dir/accounts.1.json", "rb").read() == data1 + assert open(dn + "/temp_dir/accounts.2.json", "rb").read() == data2 + gcs.put(dn + "/temp_dir", protocol + TEST_BUCKET + "/temp_dir", recursive=True) + # there is now in remote directory: + # protocol+TEST_BUCKET+'/temp_dir/accounts.1.json' + # protocol+TEST_BUCKET+'/temp_dir/accounts.2.json' + assert gcs.du(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == len( + data1 + ) + assert gcs.cat(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == data1 + assert gcs.du(protocol + TEST_BUCKET + "/temp_dir/accounts.2.json") == len( + data2 ) + assert gcs.cat(protocol + TEST_BUCKET + "/temp_dir/accounts.2.json") == data2 -@my_vcr.use_cassette(match=["all"]) -def test_ls(): - with gcs_maker(True) as gcs: - fn = TEST_BUCKET + "/nested/file1" - gcs.touch(fn) - - assert fn not in gcs.ls(TEST_BUCKET + "/") - assert fn in gcs.ls(TEST_BUCKET + "/nested/") - assert fn in gcs.ls(TEST_BUCKET + "/nested") - - -@my_vcr.use_cassette(match=["all"]) -def test_ls_detail(): - with gcs_maker(True) as gcs: - L = gcs.ls(TEST_BUCKET + "/nested", detail=True) - assert all(isinstance(item, dict) for item in L) - - -@my_vcr.use_cassette(match=["all"]) -def test_gcs_glob(): - with gcs_maker(True) as gcs: - fn = TEST_BUCKET + "/nested/file1" - assert fn not in gcs.glob(TEST_BUCKET + "/") - assert fn not in gcs.glob(TEST_BUCKET + "/*") - assert fn in gcs.glob(TEST_BUCKET + "/nested/") - assert fn in gcs.glob(TEST_BUCKET + "/nested/*") - assert fn in gcs.glob(TEST_BUCKET + "/nested/file*") - assert fn in gcs.glob(TEST_BUCKET + "/*/*") - assert fn in gcs.glob(TEST_BUCKET + "/**") - assert fn in gcs.glob(TEST_BUCKET + "/**1") - assert all( - f in gcs.find(TEST_BUCKET) - for f in gcs.glob(TEST_BUCKET + "/nested/*") - if gcs.isfile(f) +@pytest.mark.parametrize("protocol", ["", "gs://", "gcs://"]) +def test_get_put_file_in_dir(protocol, gcs): + with tempdir() as dn: + gcs.get(protocol + TEST_BUCKET + "/test/", dn + "/temp_dir", recursive=True) + # there is now in local directory: + # dn+'/temp_dir/accounts.1.json' + # dn+'/temp_dir/accounts.2.json' + data1 = files["test/accounts.1.json"] + assert open(dn + "/temp_dir/accounts.1.json", "rb").read() == data1 + gcs.put( + dn + "/temp_dir/accounts.1.json", + protocol + TEST_BUCKET + "/temp_dir/", + recursive=True, ) - # Ensure the glob only fetches prefixed folders - gcs.dircache.clear() - gcs.glob(TEST_BUCKET + "/nested**1") - assert all(d.startswith(TEST_BUCKET + "/nested") for d in gcs.dircache) - gcs.glob(TEST_BUCKET + "/test*") - assert TEST_BUCKET + "/test" in gcs.dircache - - -@my_vcr.use_cassette(match=["all"]) -def test_read_keys_from_bucket(): - with gcs_maker(True) as gcs: - for k, data in files.items(): - file_contents = gcs.cat("/".join([TEST_BUCKET, k])) - assert file_contents == data - - assert all( - gcs.cat("/".join([TEST_BUCKET, k])) - == gcs.cat("gcs://" + "/".join([TEST_BUCKET, k])) - for k in files + # there is now in remote directory: + # protocol+TEST_BUCKET+'/temp_dir/accounts.1.json' + assert gcs.du(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == len( + data1 ) + assert gcs.cat(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == data1 -@my_vcr.use_cassette(match=["all"]) -def test_url(): - with gcs_maker(True) as gcs: - fn = TEST_BUCKET + "/nested/file1" - url = gcs.url(fn) - assert "http" in url - assert quote_plus("nested/file1") in url - with gcs.open(fn) as f: - assert "http" in f.url() - - -@my_vcr.use_cassette(match=["all"]) -def test_seek(): - with gcs_maker(True) as gcs: - with gcs.open(a, "wb") as f: - f.write(b"123") - - with gcs.open(a) as f: - f.seek(1000) - with pytest.raises(ValueError): - f.seek(-1) - with pytest.raises(ValueError): - f.seek(-5, 2) - with pytest.raises(ValueError): - f.seek(0, 10) - f.seek(0) - assert f.read(1) == b"1" - f.seek(0) - assert f.read(1) == b"1" - f.seek(3) - assert f.read(1) == b"" - f.seek(-1, 2) - assert f.read(1) == b"3" - f.seek(-1, 1) - f.seek(-1, 1) - assert f.read(1) == b"2" - for i in range(4): - assert f.seek(i) == i - - -@my_vcr.use_cassette(match=["all"]) -def test_bad_open(): - with gcs_maker() as gcs: - with pytest.raises((IOError, OSError)): - gcs.open("") - - -@my_vcr.use_cassette(match=["all"]) -def test_copy(): - with gcs_maker(True) as gcs: - fn = TEST_BUCKET + "/test/accounts.1.json" - gcs.copy(fn, fn + "2") - assert gcs.cat(fn) == gcs.cat(fn + "2") - - -@my_vcr.use_cassette(match=["all"]) -def test_copy_recursive(): - with gcs_maker(True) as gcs: - src = TEST_BUCKET + "/nested" - dest = TEST_BUCKET + "/dest" - gcs.copy(src, dest, recursive=True) - for fn in gcs.ls(dest): - if not gcs.isdir(fn): - assert gcs.cat(fn) == gcs.cat(fn.replace("dest", "nested")) - - -@my_vcr.use_cassette(match=["all"]) -def test_copy_errors(): - with gcs_maker(True) as gcs: - - src = TEST_BUCKET + "/test/" - file1 = TEST_BUCKET + "/test/accounts.1.json" - file2 = TEST_BUCKET + "/test/accounts.2.json" - dne = TEST_BUCKET + "/test/notafile" - dest1 = TEST_BUCKET + "/dest1/" - dest2 = TEST_BUCKET + "/dest2/" - - # Non recursive should raise an error unless we specify ignore - with pytest.raises(FileNotFoundError): - gcs.copy([file1, file2, dne], dest1) - - gcs.copy([file1, file2, dne], dest1, on_error="ignore") - assert gcs.ls(dest1) == [dest1 + "accounts.1.json", dest1 + "accounts.2.json"] - - # Recursive should raise an error only if we specify raise - # the patch simulates the filesystem finding a file that does not exist in the directory - current_files = gcs.expand_path(src, recursive=True) - with mock.patch.object(gcs, "expand_path", return_value=current_files + [dne]): - with pytest.raises(FileNotFoundError): - gcs.copy(src, dest2, recursive=True, on_error="raise") - - gcs.copy(src, dest2, recursive=True) - assert gcs.ls(dest2) == [ - dest2 + "accounts.1.json", - dest2 + "accounts.2.json", - ] - - -@my_vcr.use_cassette(match=["all"]) -def test_move(): - with gcs_maker(True) as gcs: - fn = TEST_BUCKET + "/test/accounts.1.json" - data = gcs.cat(fn) - gcs.mv(fn, fn + "2") - assert gcs.cat(fn + "2") == data - assert not gcs.exists(fn) - - -@my_vcr.use_cassette(match=["all"]) -def test_cat_file(): - with gcs_maker(True) as gcs: - fn = TEST_BUCKET + "/test/accounts.1.json" - data = gcs.cat_file(fn) - assert data[1:10] == gcs.cat_file(fn, start=1, end=10) - assert data[1:] == gcs.cat_file(fn, start=1) - assert data[:1] == gcs.cat_file(fn, end=1) - - -@pytest.mark.skipif(ON_VCR, reason="async fail") -@my_vcr.use_cassette(match=["all"]) -@pytest.mark.parametrize("consistency", [None, "size", "md5", "crc32c"]) -def test_get_put(consistency): - if consistency == "crc32c" and gcsfs.checkers.crcmod is None: - pytest.skip("No CRC") - with gcs_maker(True) as gcs: - gcs.consistency = consistency - with tmpfile() as fn: - gcs.get(TEST_BUCKET + "/test/accounts.1.json", fn) - data = files["test/accounts.1.json"] - assert open(fn, "rb").read() == data - gcs.put(fn, TEST_BUCKET + "/temp") - assert gcs.du(TEST_BUCKET + "/temp") == len(data) - assert gcs.cat(TEST_BUCKET + "/temp") == data - - -@pytest.mark.skipif(ON_VCR, reason="async fail") -@my_vcr.use_cassette(match=["all"]) -def test_get_put_list(): - with gcs_maker(True) as gcs: - with tmpfile() as fn: - gcs.get([TEST_BUCKET + "/test/accounts.1.json"], [fn]) - data = files["test/accounts.1.json"] - assert open(fn, "rb").read() == data - gcs.put([fn], [TEST_BUCKET + "/temp"]) - assert gcs.du(TEST_BUCKET + "/temp") == len(data) - assert gcs.cat(TEST_BUCKET + "/temp") == data - - -@pytest.mark.skipif(ON_VCR, reason="async fail") -@pytest.mark.parametrize("protocol", ["", "gs://", "gcs://"]) -@my_vcr.use_cassette(match=["all"]) -def test_get_put_recursive(protocol): - with gcs_maker(True) as gcs: - with tempdir() as dn: - gcs.get(protocol + TEST_BUCKET + "/test/", dn + "/temp_dir", recursive=True) - # there is now in local directory: - # dn+'/temp_dir/accounts.1.json' - # dn+'/temp_dir/accounts.2.json' - data1 = files["test/accounts.1.json"] - data2 = files["test/accounts.2.json"] - assert open(dn + "/temp_dir/accounts.1.json", "rb").read() == data1 - assert open(dn + "/temp_dir/accounts.2.json", "rb").read() == data2 - gcs.put( - dn + "/temp_dir", protocol + TEST_BUCKET + "/temp_dir", recursive=True - ) - # there is now in remote directory: - # protocol+TEST_BUCKET+'/temp_dir/accounts.1.json' - # protocol+TEST_BUCKET+'/temp_dir/accounts.2.json' - assert gcs.du(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == len( - data1 - ) - assert ( - gcs.cat(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == data1 - ) - assert gcs.du(protocol + TEST_BUCKET + "/temp_dir/accounts.2.json") == len( - data2 - ) - assert ( - gcs.cat(protocol + TEST_BUCKET + "/temp_dir/accounts.2.json") == data2 - ) - - -@pytest.mark.skipif(ON_VCR, reason="async fail") -@pytest.mark.parametrize("protocol", ["", "gs://", "gcs://"]) -@my_vcr.use_cassette(match=["all"]) -def test_get_put_file_in_dir(protocol): - with gcs_maker(True) as gcs: - with tempdir() as dn: - gcs.get(protocol + TEST_BUCKET + "/test/", dn + "/temp_dir", recursive=True) - # there is now in local directory: - # dn+'/temp_dir/accounts.1.json' - # dn+'/temp_dir/accounts.2.json' - data1 = files["test/accounts.1.json"] - assert open(dn + "/temp_dir/accounts.1.json", "rb").read() == data1 - gcs.put( - dn + "/temp_dir/accounts.1.json", - protocol + TEST_BUCKET + "/temp_dir/", - recursive=True, - ) - # there is now in remote directory: - # protocol+TEST_BUCKET+'/temp_dir/accounts.1.json' - assert gcs.du(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == len( - data1 - ) - assert ( - gcs.cat(protocol + TEST_BUCKET + "/temp_dir/accounts.1.json") == data1 - ) - - -@my_vcr.use_cassette(match=["all"]) -def test_errors(): - with gcs_maker() as gcs: - with pytest.raises((IOError, OSError)): - gcs.open(TEST_BUCKET + "/tmp/test/shfoshf", "rb") - - ## This is fine, no need for interleving directories on gcs - # with pytest.raises((IOError, OSError)): - # gcs.touch('tmp/test/shfoshf/x') - - # silently ignoed for now - # with pytest.raises((IOError, OSError)): - # gcs.rm(TEST_BUCKET + "/tmp/test/shfoshf/x") - - with pytest.raises((IOError, OSError)): - gcs.mv(TEST_BUCKET + "/tmp/test/shfoshf/x", "tmp/test/shfoshf/y") - - with pytest.raises((IOError, OSError)): - gcs.open("x", "rb") - - with pytest.raises((IOError, OSError)): - gcs.rm("unknown") +def test_errors(gcs): + with pytest.raises((IOError, OSError)): + gcs.open(TEST_BUCKET + "/tmp/test/shfoshf", "rb") - with pytest.raises(ValueError): - with gcs.open(TEST_BUCKET + "/temp", "wb") as f: - f.read() + ## This is fine, no need for interleving directories on gcs + # with pytest.raises((IOError, OSError)): + # gcs.touch('tmp/test/shfoshf/x') - with pytest.raises(ValueError): - f = gcs.open(TEST_BUCKET + "/temp", "rb") - f.close() - f.read() + # silently ignoed for now + # with pytest.raises((IOError, OSError)): + # gcs.rm(TEST_BUCKET + "/tmp/test/shfoshf/x") - with pytest.raises(ValueError) as e: - gcs.mkdir("/") - assert "bucket" in str(e) - - -@my_vcr.use_cassette(match=["all"]) -def test_read_small(): - with gcs_maker(True) as gcs: - fn = TEST_BUCKET + "/2014-01-01.csv" - with gcs.open(fn, "rb", block_size=10) as f: - out = [] - while True: - data = f.read(3) - if data == b"": - break - out.append(data) - assert gcs.cat(fn) == b"".join(out) - # cache drop - assert len(f.cache.cache) < len(out) - - -@my_vcr.use_cassette(match=["all"]) -def test_seek_delimiter(): - with gcs_maker(True) as gcs: - fn = "test/accounts.1.json" - data = files[fn] - with gcs.open("/".join([TEST_BUCKET, fn])) as f: - seek_delimiter(f, b"}", 0) - assert f.tell() == 0 - f.seek(1) - seek_delimiter(f, b"}", 5) - assert f.tell() == data.index(b"}") + 1 - seek_delimiter(f, b"\n", 5) - assert f.tell() == data.index(b"\n") + 1 - f.seek(1, 1) - ind = data.index(b"\n") + data[data.index(b"\n") + 1 :].index(b"\n") + 1 - seek_delimiter(f, b"\n", 5) - assert f.tell() == ind + 1 - - -@my_vcr.use_cassette(match=["all"]) -def test_read_block(): - with gcs_maker(True) as gcs: - data = files["test/accounts.1.json"] - lines = io.BytesIO(data).readlines() - path = TEST_BUCKET + "/test/accounts.1.json" - assert gcs.read_block(path, 1, 35, b"\n") == lines[1] - assert gcs.read_block(path, 0, 30, b"\n") == lines[0] - assert gcs.read_block(path, 0, 35, b"\n") == lines[0] + lines[1] - gcs.read_block(path, 0, 5000, b"\n") - assert gcs.read_block(path, 0, 5000, b"\n") == data - assert len(gcs.read_block(path, 0, 5)) == 5 - assert len(gcs.read_block(path, 4, 5000)) == len(data) - 4 - assert gcs.read_block(path, 5000, 5010) == b"" - - assert gcs.read_block(path, 5, None) == gcs.read_block(path, 5, 1000) - - -@my_vcr.use_cassette(match=["all"]) -def test_flush(): - with gcs_maker() as gcs: - gcs.touch(a) - with gcs.open(a, "rb") as ro: - with pytest.raises(ValueError): - ro.write(b"abc") - - ro.flush() - - with gcs.open(b, "wb") as wo: - wo.write(b"abc") - wo.flush() - assert not gcs.exists(b) - - assert gcs.exists(b) - with pytest.raises(ValueError): - wo.write(b"abc") + with pytest.raises((IOError, OSError)): + gcs.mv(TEST_BUCKET + "/tmp/test/shfoshf/x", "tmp/test/shfoshf/y") + with pytest.raises((IOError, OSError)): + gcs.open("x", "rb") -@my_vcr.use_cassette(match=["all"]) -def test_write_fails(): - with gcs_maker() as gcs: - with pytest.raises(ValueError): - gcs.touch(TEST_BUCKET + "/temp") - gcs.open(TEST_BUCKET + "/temp", "rb").write(b"hello") + with pytest.raises((IOError, OSError)): + gcs.rm("unknown") - with gcs.open(TEST_BUCKET + "/temp", "wb") as f: - f.write(b"hello") - f.flush(force=True) - with pytest.raises(ValueError): - f.write(b"world") + with pytest.raises(ValueError): + with gcs.open(TEST_BUCKET + "/temp", "wb") as f: + f.read() - f = gcs.open(TEST_BUCKET + "/temp", "wb") + with pytest.raises(ValueError): + f = gcs.open(TEST_BUCKET + "/temp", "rb") f.close() + f.read() + + with pytest.raises(ValueError) as e: + gcs.mkdir("/") + assert "bucket" in str(e) + + +def test_read_small(gcs): + fn = TEST_BUCKET + "/2014-01-01.csv" + with gcs.open(fn, "rb", block_size=10) as f: + out = [] + while True: + data = f.read(3) + if data == b"": + break + out.append(data) + assert gcs.cat(fn) == b"".join(out) + # cache drop + assert len(f.cache.cache) < len(out) + + +def test_seek_delimiter(gcs): + fn = "test/accounts.1.json" + data = files[fn] + with gcs.open("/".join([TEST_BUCKET, fn])) as f: + seek_delimiter(f, b"}", 0) + assert f.tell() == 0 + f.seek(1) + seek_delimiter(f, b"}", 5) + assert f.tell() == data.index(b"}") + 1 + seek_delimiter(f, b"\n", 5) + assert f.tell() == data.index(b"\n") + 1 + f.seek(1, 1) + ind = data.index(b"\n") + data[data.index(b"\n") + 1 :].index(b"\n") + 1 + seek_delimiter(f, b"\n", 5) + assert f.tell() == ind + 1 + + +def test_read_block(gcs): + data = files["test/accounts.1.json"] + lines = io.BytesIO(data).readlines() + path = TEST_BUCKET + "/test/accounts.1.json" + assert gcs.read_block(path, 1, 35, b"\n") == lines[1] + assert gcs.read_block(path, 0, 30, b"\n") == lines[0] + assert gcs.read_block(path, 0, 35, b"\n") == lines[0] + lines[1] + gcs.read_block(path, 0, 5000, b"\n") + assert gcs.read_block(path, 0, 5000, b"\n") == data + assert len(gcs.read_block(path, 0, 5)) == 5 + assert len(gcs.read_block(path, 4, 5000)) == len(data) - 4 + assert gcs.read_block(path, 5000, 5010) == b"" + + assert gcs.read_block(path, 5, None) == gcs.read_block(path, 5, 1000) + + +def test_flush(gcs): + gcs.touch(a) + with gcs.open(a, "rb") as ro: with pytest.raises(ValueError): + ro.write(b"abc") + + ro.flush() + + with gcs.open(b, "wb") as wo: + wo.write(b"abc") + wo.flush() + assert not gcs.exists(b) + + assert gcs.exists(b) + with pytest.raises(ValueError): + wo.write(b"abc") + + +def test_write_fails(gcs): + with pytest.raises(ValueError): + gcs.touch(TEST_BUCKET + "/temp") + gcs.open(TEST_BUCKET + "/temp", "rb").write(b"hello") + + with gcs.open(TEST_BUCKET + "/temp", "wb") as f: f.write(b"hello") - with pytest.raises((OSError, IOError)): - gcs.open("nonexistentbucket/temp", "wb").close() + f.flush(force=True) + with pytest.raises(ValueError): + f.write(b"world") + + f = gcs.open(TEST_BUCKET + "/temp", "wb") + f.close() + with pytest.raises(ValueError): + f.write(b"hello") + with pytest.raises((OSError, IOError)): + gcs.open("nonexistentbucket/temp", "wb").close() -@my_vcr.use_cassette(match=["all"]) -def text_mode(): +def text_mode(gcs): text = "Hello ยต" - with gcs_maker() as gcs: - with gcs.open(TEST_BUCKET + "/temp", "w") as f: - f.write(text) - with gcs.open(TEST_BUCKET + "/temp", "r") as f: - assert f.read() == text - - -@my_vcr.use_cassette(match=["all"]) -def test_write_blocks(): - with gcs_maker() as gcs: - with gcs.open(TEST_BUCKET + "/temp", "wb", block_size=2 ** 18) as f: - f.write(b"a" * 100000) - assert f.buffer.tell() == 100000 - assert not (f.offset) - f.write(b"a" * 100000) - f.write(b"a" * 100000) - assert f.offset - assert gcs.info(TEST_BUCKET + "/temp")["size"] == 300000 - - -@my_vcr.use_cassette(match=["all"]) -def test_write_blocks2(): - with gcs_maker() as gcs: - with gcs.open(TEST_BUCKET + "/temp1", "wb", block_size=2 ** 18) as f: - f.write(b"a" * (2 ** 18 + 1)) - # leftover bytes: GCS accepts blocks in multiples of 2**18 bytes - assert f.buffer.tell() == 1 - assert gcs.info(TEST_BUCKET + "/temp1")["size"] == 2 ** 18 + 1 - - -@my_vcr.use_cassette(match=["all"]) -def test_readline(): - with gcs_maker(True) as gcs: - all_items = chain.from_iterable( - [files.items(), csv_files.items(), text_files.items()] - ) - for k, data in all_items: - with gcs.open("/".join([TEST_BUCKET, k]), "rb") as f: - result = f.readline() - expected = data.split(b"\n")[0] + (b"\n" if data.count(b"\n") else b"") - assert result == expected + with gcs.open(TEST_BUCKET + "/temp", "w") as f: + f.write(text) + with gcs.open(TEST_BUCKET + "/temp", "r") as f: + assert f.read() == text + + +def test_write_blocks(gcs): + with gcs.open(TEST_BUCKET + "/temp", "wb", block_size=2 ** 18) as f: + f.write(b"a" * 100000) + assert f.buffer.tell() == 100000 + assert not (f.offset) + f.write(b"a" * 100000) + f.write(b"a" * 100000) + assert f.offset + assert gcs.info(TEST_BUCKET + "/temp")["size"] == 300000 + + +def test_write_blocks2(gcs): + if not gcs.on_google: + pytest.skip("emulator always accepts whole request") + with gcs.open(TEST_BUCKET + "/temp1", "wb", block_size=2 ** 18) as f: + f.write(b"a" * (2 ** 18 + 1)) + # leftover bytes: GCS accepts blocks in multiples of 2**18 bytes + assert f.buffer.tell() == 1 + assert gcs.info(TEST_BUCKET + "/temp1")["size"] == 2 ** 18 + 1 + + +def test_readline(gcs): + all_items = chain.from_iterable( + [files.items(), csv_files.items(), text_files.items()] + ) + for k, data in all_items: + with gcs.open("/".join([TEST_BUCKET, k]), "rb") as f: + result = f.readline() + expected = data.split(b"\n")[0] + (b"\n" if data.count(b"\n") else b"") + assert result == expected -@my_vcr.use_cassette(match=["all"]) -def test_readline_from_cache(): - with gcs_maker() as gcs: - data = b"a,b\n11,22\n3,4" - with gcs.open(a, "wb") as f: - f.write(data) +def test_readline_from_cache(gcs): + data = b"a,b\n11,22\n3,4" + with gcs.open(a, "wb") as f: + f.write(data) - with gcs.open(a, "rb") as f: - result = f.readline() - assert result == b"a,b\n" - assert f.loc == 4 - assert f.cache.cache == data + with gcs.open(a, "rb") as f: + result = f.readline() + assert result == b"a,b\n" + assert f.loc == 4 + assert f.cache.cache == data - result = f.readline() - assert result == b"11,22\n" - assert f.loc == 10 - assert f.cache.cache == data + result = f.readline() + assert result == b"11,22\n" + assert f.loc == 10 + assert f.cache.cache == data - result = f.readline() - assert result == b"3,4" - assert f.loc == 13 - assert f.cache.cache == data - - -@my_vcr.use_cassette(match=["all"]) -def test_readline_empty(): - with gcs_maker() as gcs: - data = b"" - with gcs.open(a, "wb") as f: - f.write(data) - with gcs.open(a, "rb") as f: - result = f.readline() - assert result == data + result = f.readline() + assert result == b"3,4" + assert f.loc == 13 + assert f.cache.cache == data -@my_vcr.use_cassette(match=["all"]) -def test_readline_blocksize(): - with gcs_maker() as gcs: - data = b"ab\n" + b"a" * (2 ** 18) + b"\nab" - with gcs.open(a, "wb") as f: - f.write(data) - with gcs.open(a, "rb", block_size=2 ** 18) as f: - result = f.readline() - expected = b"ab\n" - assert result == expected +def test_readline_empty(gcs): + data = b"" + with gcs.open(a, "wb") as f: + f.write(data) + with gcs.open(a, "rb") as f: + result = f.readline() + assert result == data - result = f.readline() - expected = b"a" * (2 ** 18) + b"\n" - assert result == expected - result = f.readline() - expected = b"ab" - assert result == expected - - -@my_vcr.use_cassette(match=["all"]) -def test_next(): - with gcs_maker(True) as gcs: - expected = csv_files["2014-01-01.csv"].split(b"\n")[0] + b"\n" - with gcs.open(TEST_BUCKET + "/2014-01-01.csv") as f: - result = next(f) - assert result == expected - - -@my_vcr.use_cassette(match=["all"]) -def test_iterable(): - with gcs_maker() as gcs: - data = b"abc\n123" - with gcs.open(a, "wb") as f: - f.write(data) - with gcs.open(a) as f, io.BytesIO(data) as g: - for fromgcs, fromio in zip(f, g): - assert fromgcs == fromio - f.seek(0) - assert f.readline() == b"abc\n" - assert f.readline() == b"123" - f.seek(1) - assert f.readline() == b"bc\n" - - with gcs.open(a) as f: - out = list(f) - with gcs.open(a) as f: - out2 = f.readlines() - assert out == out2 - assert b"".join(out) == data +def test_readline_blocksize(gcs): + data = b"ab\n" + b"a" * (2 ** 18) + b"\nab" + with gcs.open(a, "wb") as f: + f.write(data) + with gcs.open(a, "rb", block_size=2 ** 18) as f: + result = f.readline() + expected = b"ab\n" + assert result == expected + result = f.readline() + expected = b"a" * (2 ** 18) + b"\n" + assert result == expected -@my_vcr.use_cassette(match=["all"]) -def test_readable(): - with gcs_maker() as gcs: - with gcs.open(a, "wb") as f: - assert not f.readable() - - with gcs.open(a, "rb") as f: - assert f.readable() - - -@my_vcr.use_cassette(match=["all"]) -def test_seekable(): - with gcs_maker() as gcs: - with gcs.open(a, "wb") as f: - assert not f.seekable() - - with gcs.open(a, "rb") as f: - assert f.seekable() - - -@my_vcr.use_cassette(match=["all"]) -def test_writable(): - with gcs_maker() as gcs: - with gcs.open(a, "wb") as f: - assert f.writable() - - with gcs.open(a, "rb") as f: - assert not f.writable() - - -@my_vcr.use_cassette(match=["all"]) -def test_merge(): - with gcs_maker() as gcs: - with gcs.open(a, "wb") as f: - f.write(b"a" * 10) - - with gcs.open(b, "wb") as f: - f.write(b"a" * 10) - gcs.merge(TEST_BUCKET + "/joined", [a, b]) - assert gcs.info(TEST_BUCKET + "/joined")["size"] == 20 - - -@my_vcr.use_cassette(match=["all"]) -def test_bigger_than_block_read(): - with gcs_maker(True) as gcs: - with gcs.open(TEST_BUCKET + "/2014-01-01.csv", "rb", block_size=3) as f: - out = [] - while True: - data = f.read(20) - out.append(data) - if len(data) == 0: - break - assert b"".join(out) == csv_files["2014-01-01.csv"] - - -@my_vcr.use_cassette(match=["all"]) -def test_current(): - with gcs_maker() as gcs: - assert GCSFileSystem.current() is gcs - gcs2 = GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN) - assert gcs2.session is gcs.session - - -@my_vcr.use_cassette(match=["all"]) -def test_array(): - with gcs_maker() as gcs: - from array import array - - data = array("B", [65] * 1000) - - with gcs.open(a, "wb") as f: - f.write(data) - - with gcs.open(a, "rb") as f: - out = f.read() - assert out == b"A" * 1000 - - -@my_vcr.use_cassette(match=["all"]) -def test_attrs(): - with gcs_maker() as gcs: - gcs.touch(a) - assert "metadata" not in gcs.info(a) - with pytest.raises(KeyError): - gcs.getxattr(a, "foo") - - gcs.touch(a, metadata={"foo": "blob"}) - assert gcs.getxattr(a, "foo") == "blob" - - gcs.setxattrs(a, foo="blah") - assert gcs.getxattr(a, "foo") == "blah" + result = f.readline() + expected = b"ab" + assert result == expected - with gcs.open(a, "wb") as f: - f.metadata = {"something": "not"} - with pytest.raises(KeyError): - gcs.getxattr(a, "foo") - assert gcs.getxattr(a, "something") == "not" +def test_next(gcs): + expected = csv_files["2014-01-01.csv"].split(b"\n")[0] + b"\n" + with gcs.open(TEST_BUCKET + "/2014-01-01.csv") as f: + result = next(f) + assert result == expected -@my_vcr.use_cassette(match=["all"]) -def test_request_user_project(): - with gcs_maker(): - gcs = GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN, requester_pays=True) - # test directly against `_call` to inspect the result - r = gcs.call( - "GET", - "b/{}/o/", - TEST_REQUESTER_PAYS_BUCKET, - delimiter="/", - prefix="test", - maxResults=100, - info_out=True, - ) - qs = urlparse(r.url.human_repr()).query - result = parse_qs(qs) - assert result["userProject"] == [TEST_PROJECT] +def test_iterable(gcs): + data = b"abc\n123" + with gcs.open(a, "wb") as f: + f.write(data) + with gcs.open(a) as f, io.BytesIO(data) as g: + for fromgcs, fromio in zip(f, g): + assert fromgcs == fromio + f.seek(0) + assert f.readline() == b"abc\n" + assert f.readline() == b"123" + f.seek(1) + assert f.readline() == b"bc\n" + with gcs.open(a) as f: + out = list(f) + with gcs.open(a) as f: + out2 = f.readlines() + assert out == out2 + assert b"".join(out) == data -@my_vcr.use_cassette(match=["all"]) -def test_request_user_project_string(): - with gcs_maker(): - gcs = GCSFileSystem( - TEST_PROJECT, token=GOOGLE_TOKEN, requester_pays=TEST_PROJECT - ) - assert gcs.requester_pays == TEST_PROJECT - # test directly against `_call` to inspect the result - r = gcs.call( - "GET", - "b/{}/o/", - TEST_REQUESTER_PAYS_BUCKET, - delimiter="/", - prefix="test", - maxResults=100, - info_out=True, - ) - qs = urlparse(r.url.human_repr()).query - result = parse_qs(qs) - assert result["userProject"] == [TEST_PROJECT] - - -@my_vcr.use_cassette(match=["all"]) -def test_request_header(): - with gcs_maker(): - gcs = GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN, requester_pays=True) - # test directly against `_call` to inspect the result - r = gcs.call( - "GET", - "b/{}/o/", - TEST_REQUESTER_PAYS_BUCKET, - delimiter="/", - prefix="test", - maxResults=100, - info_out=True, - ) - assert r.headers["User-Agent"] == "python-gcsfs/" + version +def test_readable(gcs): + with gcs.open(a, "wb") as f: + assert not f.readable() -@mock.patch("gcsfs.credentials.gauth") -def test_user_project_fallback_google_default(mock_auth): - mock_auth.default.return_value = (requests.Session(), "my_default_project") - fs = GCSFileSystem(token="google_default") + with gcs.open(a, "rb") as f: + assert f.readable() + + +def test_seekable(gcs): + with gcs.open(a, "wb") as f: + assert not f.seekable() + + with gcs.open(a, "rb") as f: + assert f.seekable() + + +def test_writable(gcs): + with gcs.open(a, "wb") as f: + assert f.writable() + + with gcs.open(a, "rb") as f: + assert not f.writable() + + +def test_merge(gcs): + with gcs.open(a, "wb") as f: + f.write(b"a" * 10) + + with gcs.open(b, "wb") as f: + f.write(b"a" * 10) + gcs.merge(TEST_BUCKET + "/joined", [a, b]) + assert gcs.info(TEST_BUCKET + "/joined")["size"] == 20 + + +def test_bigger_than_block_read(gcs): + with gcs.open(TEST_BUCKET + "/2014-01-01.csv", "rb", block_size=3) as f: + out = [] + while True: + data = f.read(20) + out.append(data) + if len(data) == 0: + break + assert b"".join(out) == csv_files["2014-01-01.csv"] + + +def test_current(gcs): + assert GCSFileSystem.current() is gcs + gcs2 = GCSFileSystem(endpoint_url=gcs._endpoint) + assert gcs2.session is gcs.session + + +def test_array(gcs): + from array import array + + data = array("B", [65] * 1000) + + with gcs.open(a, "wb") as f: + f.write(data) + + with gcs.open(a, "rb") as f: + out = f.read() + assert out == b"A" * 1000 + + +def test_attrs(gcs): + gcs.touch(a) + assert "metadata" not in gcs.info(a) + with pytest.raises(KeyError): + gcs.getxattr(a, "foo") + + gcs.touch(a, metadata={"foo": "blob"}) + assert gcs.getxattr(a, "foo") == "blob" + + gcs.setxattrs(a, foo="blah") + assert gcs.getxattr(a, "foo") == "blah" + + with gcs.open(a, "wb") as f: + f.metadata = {"something": "not"} + + with pytest.raises(KeyError): + gcs.getxattr(a, "foo") + assert gcs.getxattr(a, "something") == "not" + + +def test_request_user_project(gcs): + gcs = GCSFileSystem( + endpoint_url=gcs._endpoint, requester_pays=True, project=TEST_PROJECT + ) + # test directly against `_call` to inspect the result + r = gcs.call( + "GET", + "b/{}/o", + TEST_BUCKET, + delimiter="/", + prefix="test", + maxResults=100, + info_out=True, + ) + qs = urlparse(r.url.human_repr()).query + result = parse_qs(qs) + assert result["userProject"] == [TEST_PROJECT] + + +def test_request_user_project_string(gcs): + gcs = GCSFileSystem(endpoint_url=gcs._endpoint, requester_pays=TEST_PROJECT) + assert gcs.requester_pays == TEST_PROJECT + # test directly against `_call` to inspect the result + r = gcs.call( + "GET", + "b/{}/o", + TEST_BUCKET, + delimiter="/", + prefix="", + maxResults=100, + info_out=True, + ) + qs = urlparse(r.url.human_repr()).query + result = parse_qs(qs) + assert result["userProject"] == [TEST_PROJECT] + + +def test_request_header(gcs): + gcs = GCSFileSystem(endpoint_url=gcs._endpoint, requester_pays=True) + # test directly against `_call` to inspect the result + r = gcs.call( + "GET", + "b/{}/o", + TEST_BUCKET, + delimiter="/", + prefix="test", + maxResults=100, + info_out=True, + ) + assert r.headers["User-Agent"] == "python-gcsfs/" + version + + +def test_user_project_fallback_google_default(monkeypatch): + import fsspec + + monkeypatch.setattr(gcsfs.core, "DEFAULT_PROJECT", "my_default_project") + monkeypatch.setattr(fsspec.config, "conf", {}) + monkeypatch.setattr( + gcsfs.credentials.gauth, + "default", + lambda *__, **_: (requests.Session(), "my_default_project"), + ) + fs = GCSFileSystem(skip_instance_cache=True) assert fs.project == "my_default_project" -@my_vcr.use_cassette(match=["all"]) -def test_user_project_cat(): - gcs = GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN, requester_pays=True) - result = gcs.cat(TEST_REQUESTER_PAYS_BUCKET + "/foo.csv") - assert len(result) +def test_user_project_cat(gcs): + if not gcs.on_google: + pytest.skip("no requester-pays on emulation") + gcs.mkdir(TEST_REQUESTER_PAYS_BUCKET) + try: + gcs.pipe(TEST_REQUESTER_PAYS_BUCKET + "/foo.csv", b"data") + gcs.make_bucket_requester_pays(TEST_REQUESTER_PAYS_BUCKET) + gcs = GCSFileSystem(requester_pays=True) + result = gcs.cat(TEST_REQUESTER_PAYS_BUCKET + "/foo.csv") + assert len(result) + finally: + gcs.rm(TEST_REQUESTER_PAYS_BUCKET, recursive=True) @mock.patch("gcsfs.credentials.gauth") @@ -988,98 +862,85 @@ def test_raise_on_project_mismatch(mock_auth): with pytest.raises(ValueError, match=match): GCSFileSystem(project="my_project", token="google_default") - result = GCSFileSystem(token="google_default") + result = GCSFileSystem(project="my_other_project", token="google_default") assert result.project == "my_other_project" -@my_vcr.use_cassette(match=["all"]) -def test_ls_prefix_cache(): - with gcs_maker(True) as gcs: - gcs.touch(f"gs://{TEST_BUCKET}/a/file1") - gcs.touch(f"gs://{TEST_BUCKET}/a/file2") - - gcs.ls(f"gs://{TEST_BUCKET}/", prefix="a/file") - gcs.info(f"gs://{TEST_BUCKET}/a/file1") - - -@my_vcr.use_cassette(match=["all"]) -def test_placeholder_dir_cache_validity(): - with gcs_maker(True) as gcs: - gcs.touch(f"gs://{TEST_BUCKET}/a/") - gcs.touch(f"gs://{TEST_BUCKET}/a/file") - gcs.touch(f"gs://{TEST_BUCKET}/b") - - gcs.find(f"gs://{TEST_BUCKET}/a/") - gcs.info(f"gs://{TEST_BUCKET}/b") - - -@my_vcr.use_cassette(match=["all"]) -def test_pseudo_dir_find(): - with gcs_maker(False) as fs: - fs.touch(f"{TEST_BUCKET}/a/b/file") - b = set(fs.glob(f"{TEST_BUCKET}/a/*")) - assert f"{TEST_BUCKET}/a/b" in b - a = set(fs.glob(f"{TEST_BUCKET}/*")) - assert f"{TEST_BUCKET}/a" in a - assert fs.find(TEST_BUCKET) == [f"{TEST_BUCKET}/a/b/file"] - assert fs.find(f"{TEST_BUCKET}/a", withdirs=True) == [ - f"{TEST_BUCKET}/a", - f"{TEST_BUCKET}/a/b", - f"{TEST_BUCKET}/a/b/file", - ] +def test_ls_prefix_cache(gcs): + gcs.touch(f"gs://{TEST_BUCKET}/a/file1") + gcs.touch(f"gs://{TEST_BUCKET}/a/file2") + + gcs.ls(f"gs://{TEST_BUCKET}/", prefix="a/file") + gcs.info(f"gs://{TEST_BUCKET}/a/file1") + + +def test_placeholder_dir_cache_validity(gcs): + gcs.touch(f"gs://{TEST_BUCKET}/a/") + gcs.touch(f"gs://{TEST_BUCKET}/a/file") + gcs.touch(f"gs://{TEST_BUCKET}/b") + gcs.find(f"gs://{TEST_BUCKET}/a/") + gcs.info(f"gs://{TEST_BUCKET}/b") -@my_vcr.use_cassette(match=["all"]) -def test_zero_cache_timeout(): - with gcs_maker(True, cache_timeout=0) as gcs: - gcs.touch(f"gs://{TEST_BUCKET}/a/file") - gcs.find(f"gs://{TEST_BUCKET}/a/") - gcs.info(f"gs://{TEST_BUCKET}/a/file") - gcs.ls(f"gs://{TEST_BUCKET}/a/") - # The _times entry and exception below should only be present after - # https://github.com/intake/filesystem_spec/pull/513. - if f"{TEST_BUCKET}/a" not in gcs.dircache._times: - pytest.skip("fsspec version too early") +def test_pseudo_dir_find(gcs): + gcs.rm(f"{TEST_BUCKET}/*", recursive=True) + gcs.touch(f"{TEST_BUCKET}/a/b/file") + b = set(gcs.glob(f"{TEST_BUCKET}/a/*")) + assert f"{TEST_BUCKET}/a/b" in b + a = set(gcs.glob(f"{TEST_BUCKET}/*")) + assert f"{TEST_BUCKET}/a" in a + assert gcs.find(TEST_BUCKET) == [f"{TEST_BUCKET}/a/b/file"] + assert gcs.find(f"{TEST_BUCKET}/a", withdirs=True) == [ + f"{TEST_BUCKET}/a", + f"{TEST_BUCKET}/a/b", + f"{TEST_BUCKET}/a/b/file", + ] - with pytest.raises(KeyError): - gcs.dircache[f"{TEST_BUCKET}/a"] +def test_zero_cache_timeout(gcs): + gcs.touch(f"gs://{TEST_BUCKET}/a/file") + gcs.find(f"gs://{TEST_BUCKET}/a/") + gcs.info(f"gs://{TEST_BUCKET}/a/file") + gcs.ls(f"gs://{TEST_BUCKET}/a/") -@my_vcr.use_cassette(match=["all"]) -def test_find_with_prefix_partial_cache(): + # The _times entry and exception below should only be present after + # https://github.com/intake/filesystem_spec/pull/513. + if f"{TEST_BUCKET}/a" not in gcs.dircache._times: + pytest.skip("fsspec version too early") + + with pytest.raises(KeyError): + gcs.dircache[f"{TEST_BUCKET}/a"] + + +def test_find_with_prefix_partial_cache(gcs): base_dir = f"{TEST_BUCKET}/test_find_with_prefix" - with gcs_maker(False) as gcs: - gcs.touch(base_dir + "/test_1") - gcs.touch(base_dir + "/test_2") - - for with_cache in (True, False): - # Test once with cached, and once with no cache - gcs.invalidate_cache() - if with_cache: - gcs.ls(base_dir) - assert gcs.find(base_dir, prefix="non_existent_") == [] - assert gcs.find(base_dir, prefix="test_") == [ - base_dir + "/test_1", - base_dir + "/test_2", - ] - assert gcs.find(base_dir + "/test_1") == [base_dir + "/test_1"] - assert gcs.find(base_dir + "/non_existent") == [] - assert ( - gcs.find(base_dir + "/non_existent", prefix="more_non_existent") == [] - ) - - -@my_vcr.use_cassette(match=["all"]) -def test_percent_file_name(): - with gcs_maker(False) as gcs: - parent = f"{TEST_BUCKET}/test/onefile" - fn = f"{parent}/a%25.txt" - data = b"zz" - with gcs.open(fn, "wb", content_type="text/plain") as f: - f.write(data) - assert gcs.cat(fn) == data - fn2 = unquote(fn) - gcs.touch(fn2) - assert gcs.cat(fn2) != data - assert set(gcs.ls(parent)) == set([fn, fn2]) + gcs.touch(base_dir + "/test_1") + gcs.touch(base_dir + "/test_2") + + for with_cache in (True, False): + # Test once with cached, and once with no cache + gcs.invalidate_cache() + if with_cache: + gcs.ls(base_dir) + assert gcs.find(base_dir, prefix="non_existent_") == [] + assert gcs.find(base_dir, prefix="test_") == [ + base_dir + "/test_1", + base_dir + "/test_2", + ] + assert gcs.find(base_dir + "/test_1") == [base_dir + "/test_1"] + assert gcs.find(base_dir + "/non_existent") == [] + assert gcs.find(base_dir + "/non_existent", prefix="more_non_existent") == [] + + +def test_percent_file_name(gcs): + parent = f"{TEST_BUCKET}/test/onefile" + fn = f"{parent}/a%25.txt" + data = b"zz" + with gcs.open(fn, "wb", content_type="text/plain") as f: + f.write(data) + assert gcs.cat(fn) == data + fn2 = unquote(fn) + gcs.touch(fn2) + assert gcs.cat(fn2) != data + assert set(gcs.ls(parent)) == set([fn, fn2]) diff --git a/gcsfs/tests/test_credentials.py b/gcsfs/tests/test_credentials.py index 82cbd324..c3119888 100644 --- a/gcsfs/tests/test_credentials.py +++ b/gcsfs/tests/test_credentials.py @@ -1,9 +1,7 @@ from gcsfs.credentials import GoogleCredentials -from gcsfs.tests.utils import my_vcr -@my_vcr.use_cassette(match=["all"]) -def test_GoogleCredentials_None(): - credentials = GoogleCredentials(project=None, token=None, access="read_only") +def test_googlecredentials_none(): + credentials = GoogleCredentials(project="myproject", token=None, access="read_only") headers = {} credentials.apply(headers) diff --git a/gcsfs/tests/test_fuse.py b/gcsfs/tests/test_fuse.py index 390565f2..e7cea49e 100644 --- a/gcsfs/tests/test_fuse.py +++ b/gcsfs/tests/test_fuse.py @@ -1,45 +1,39 @@ import os + import pytest -fuse = pytest.importorskip("fuse") import tempfile + +fuse = pytest.importorskip("fuse") from fsspec.fuse import run from gcsfs.tests.settings import TEST_BUCKET -from gcsfs.tests.utils import gcs_maker, my_vcr import threading import time -@pytest.mark.xfail -@pytest.mark.skipif( - "TRAVIS" in os.environ and os.environ["TRAVIS"] == "true", - reason="Skipping this test on Travis CI.", -) -@my_vcr.use_cassette(match=["all"]) -def test_fuse(token_restore): +def test_fuse(gcs): mountpath = tempfile.mkdtemp() - with gcs_maker() as gcs: - th = threading.Thread(target=lambda: run(gcs, TEST_BUCKET + "/", mountpath)) - th.daemon = True - th.start() + th = threading.Thread(target=lambda: run(gcs, TEST_BUCKET + "/", mountpath)) + th.daemon = True + th.start() - time.sleep(5) - timeout = 20 - while True: - try: - open(os.path.join(mountpath, "lock"), "w").close() - os.remove(os.path.join(mountpath, "lock")) - break - except: # noqa: E722 - time.sleep(0.5) - timeout -= 0.5 - assert timeout > 0 + time.sleep(5) + timeout = 20 + while True: + try: + open(os.path.join(mountpath, "lock"), "w").close() + os.remove(os.path.join(mountpath, "lock")) + break + except: # noqa: E722 + time.sleep(0.5) + timeout -= 0.5 + assert timeout > 0 - with open(os.path.join(mountpath, "hello"), "w") as f: - # NB this is in TEXT mode - f.write("hello") - files = os.listdir(mountpath) - assert "hello" in files - with open(os.path.join(mountpath, "hello"), "r") as f: - # NB this is in TEXT mode - assert f.read() == "hello" + with open(os.path.join(mountpath, "hello"), "w") as f: + # NB this is in TEXT mode + f.write("hello") + files = os.listdir(mountpath) + assert "hello" in files + with open(os.path.join(mountpath, "hello"), "r") as f: + # NB this is in TEXT mode + assert f.read() == "hello" diff --git a/gcsfs/tests/test_mapping.py b/gcsfs/tests/test_mapping.py index b410cd5e..70788ead 100644 --- a/gcsfs/tests/test_mapping.py +++ b/gcsfs/tests/test_mapping.py @@ -1,13 +1,9 @@ import pytest from gcsfs.tests.settings import TEST_BUCKET -from gcsfs.tests.utils import my_vcr, gcs_maker root = TEST_BUCKET + "/mapping" -pytestmark = pytest.mark.usefixtures("token_restore") - - def test_api(): import gcsfs @@ -15,158 +11,135 @@ def test_api(): assert "mapping" in dir(gcsfs) -@my_vcr.use_cassette(match=["all"]) -def test_map_simple(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - assert not d +def test_map_simple(gcs): + d = gcs.get_mapper(root) + assert not d - assert list(d) == list(d.keys()) == [] - assert list(d.values()) == [] - assert list(d.items()) == [] + assert list(d) == list(d.keys()) == [] + assert list(d.values()) == [] + assert list(d.items()) == [] -@my_vcr.use_cassette(match=["all"]) -def test_map_default_gcsfilesystem(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - assert d.fs is gcs +def test_map_default_gcsfilesystem(gcs): + d = gcs.get_mapper(root) + assert d.fs is gcs -@my_vcr.use_cassette(match=["all"]) -def test_map_errors(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - with pytest.raises(KeyError): - d["nonexistent"] - try: - gcs.get_mapper("does-not-exist") - except Exception as e: - assert "does-not-exist" in str(e) +def test_map_errors(gcs): + d = gcs.get_mapper(root) + with pytest.raises(KeyError): + d["nonexistent"] + try: + gcs.get_mapper("does-not-exist") + except Exception as e: + assert "does-not-exist" in str(e) -@pytest.mark.xfail(reason="only passes for the py version where it was recorded") -@my_vcr.use_cassette(match=["all"]) -def test_map_with_data(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - d["x"] = b"123" - assert list(d) == list(d.keys()) == ["x"] - assert list(d.values()) == [b"123"] - assert list(d.items()) == [("x", b"123")] - assert d["x"] == b"123" - assert bool(d) +def test_map_with_data(gcs): + d = gcs.get_mapper(root) + d["x"] = b"123" + assert list(d) == list(d.keys()) == ["x"] + assert list(d.values()) == [b"123"] + assert list(d.items()) == [("x", b"123")] + assert d["x"] == b"123" + assert bool(d) - assert gcs.find(root) == [TEST_BUCKET + "/mapping/x"] - d["x"] = b"000" - assert d["x"] == b"000" + assert gcs.find(root) == [TEST_BUCKET + "/mapping/x"] + d["x"] = b"000" + assert d["x"] == b"000" - d["y"] = b"456" - assert d["y"] == b"456" - assert set(d) == {"x", "y"} + d["y"] = b"456" + assert d["y"] == b"456" + assert set(d) == {"x", "y"} - d.clear() - assert list(d) == [] + d.clear() + assert list(d) == [] -@my_vcr.use_cassette(match=["all"]) -def test_map_complex_keys(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - d[1] = b"hello" - assert d[1] == b"hello" - del d[1] +def test_map_complex_keys(gcs): + d = gcs.get_mapper(root) + d[1] = b"hello" + assert d[1] == b"hello" + del d[1] - d[1, 2] = b"world" - assert d[1, 2] == b"world" - del d[1, 2] + d[1, 2] = b"world" + assert d[1, 2] == b"world" + del d[1, 2] - d["x", 1, 2] = b"hello world" - assert d["x", 1, 2] == b"hello world" + d["x", 1, 2] = b"hello world" + assert d["x", 1, 2] == b"hello world" - assert ("x", 1, 2) in d + assert ("x", 1, 2) in d -@my_vcr.use_cassette(match=["all"]) -def test_map_clear_empty(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - d.clear() - assert list(d) == [] - d[1] = b"1" - # may repeat the test below, since VCR sometimes picks the wrong call to ls - assert list(d) == ["1"] or list(d) == ["1"] - d.clear() - assert list(d) == [] +def test_map_clear_empty(gcs): + d = gcs.get_mapper(root) + d.clear() + assert list(d) == [] + d[1] = b"1" + # may repeat the test below, since VCR sometimes picks the wrong call to ls + assert list(d) == ["1"] or list(d) == ["1"] + d.clear() + assert list(d) == [] -@my_vcr.use_cassette(match=["all"]) -def test_map_pickle(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - d["x"] = b"1" - assert d["x"] == b"1" +def test_map_pickle(gcs): + d = gcs.get_mapper(root) + d["x"] = b"1" + assert d["x"] == b"1" - import pickle + import pickle - d2 = pickle.loads(pickle.dumps(d)) + d2 = pickle.loads(pickle.dumps(d)) - assert d2["x"] == b"1" + assert d2["x"] == b"1" -@my_vcr.use_cassette(match=["all"]) -def test_map_array(): - with gcs_maker() as gcs: - from array import array +def test_map_array(gcs): + from array import array - d = gcs.get_mapper(root) - d["x"] = array("B", [65] * 1000) + d = gcs.get_mapper(root) + d["x"] = array("B", [65] * 1000) - assert d["x"] == b"A" * 1000 + assert d["x"] == b"A" * 1000 -@my_vcr.use_cassette(match=["all"]) -def test_map_bytearray(): - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - d["x"] = bytearray(b"123") +def test_map_bytearray(gcs): + d = gcs.get_mapper(root) + d["x"] = bytearray(b"123") - assert d["x"] == b"123" + assert d["x"] == b"123" -@my_vcr.use_cassette(match=["all"]) -def test_new_bucket(): - with gcs_maker() as gcs: - new_bucket = TEST_BUCKET + "new-bucket" - try: - gcs.rmdir(new_bucket) - except: # noqa: E722 - pass - with pytest.raises(Exception) as e: - d = gcs.get_mapper(new_bucket, check=True) - assert "create=True" in str(e.value) - - try: - d = gcs.get_mapper(new_bucket, create=True) - assert not d +def test_new_bucket(gcs): + new_bucket = TEST_BUCKET + "new-bucket" + try: + gcs.rmdir(new_bucket) + except: # noqa: E722 + pass + with pytest.raises(Exception) as e: + d = gcs.get_mapper(new_bucket, check=True) + assert "create=True" in str(e.value) - d = gcs.get_mapper(new_bucket + "/new-directory") - assert not d - finally: - gcs.rmdir(new_bucket) + try: + d = gcs.get_mapper(new_bucket, create=True) + assert not d + + d = gcs.get_mapper(new_bucket + "/new-directory") + assert not d + finally: + gcs.rmdir(new_bucket) -@my_vcr.use_cassette(match=["all"]) -def test_map_pickle(): +def test_map_pickle(gcs): import pickle - with gcs_maker() as gcs: - d = gcs.get_mapper(root) - d["x"] = b"1234567890" + d = gcs.get_mapper(root) + d["x"] = b"1234567890" - b = pickle.dumps(d) - assert b"1234567890" not in b + b = pickle.dumps(d) + assert b"1234567890" not in b - e = pickle.loads(b) + e = pickle.loads(b) - assert dict(e) == {"x": b"1234567890"} + assert dict(e) == {"x": b"1234567890"} diff --git a/gcsfs/tests/test_retry.py b/gcsfs/tests/test_retry.py index 866018d2..e452b667 100644 --- a/gcsfs/tests/test_retry.py +++ b/gcsfs/tests/test_retry.py @@ -5,7 +5,7 @@ from gcsfs.tests.settings import TEST_BUCKET from gcsfs.retry import HttpError, is_retriable, validate_response -from gcsfs.tests.utils import tmpfile, my_vcr, gcs_maker +from gcsfs.tests.utils import tmpfile def test_tempfile(): @@ -68,7 +68,6 @@ def test_validate_response(): validate_response(502, b"", "/path") -@my_vcr.use_cassette(match=["all"]) @pytest.mark.parametrize( ["file_path", "validate_get_error", "validate_list_error", "expected_error"], [ @@ -105,24 +104,22 @@ def test_validate_response(): ], ) def test_metadata_read_permissions( - file_path, validate_get_error, validate_list_error, expected_error + file_path, validate_get_error, validate_list_error, expected_error, gcs ): - with gcs_maker(True) as gcs: - - def _validate_response(self, status, content, path): - if path.endswith(f"/o{file_path}") and validate_get_error is not None: - raise validate_get_error - if path.endswith("/o/") and validate_list_error is not None: - raise validate_list_error - validate_response(status, content, path) - - if expected_error is None: + def _validate_response(self, status, content, path): + if path.endswith(f"/o{file_path}") and validate_get_error is not None: + raise validate_get_error + if path.endswith("/o/") and validate_list_error is not None: + raise validate_list_error + validate_response(status, content, path) + + if expected_error is None: + gcs.ls(TEST_BUCKET + file_path) + gcs.info(TEST_BUCKET + file_path) + assert gcs.exists(TEST_BUCKET + file_path) + else: + with pytest.raises(expected_error): gcs.ls(TEST_BUCKET + file_path) + with pytest.raises(expected_error): gcs.info(TEST_BUCKET + file_path) - assert gcs.exists(TEST_BUCKET + file_path) - else: - with pytest.raises(expected_error): - gcs.ls(TEST_BUCKET + file_path) - with pytest.raises(expected_error): - gcs.info(TEST_BUCKET + file_path) - assert gcs.exists(TEST_BUCKET + file_path) is False + assert gcs.exists(TEST_BUCKET + file_path) is False diff --git a/gcsfs/tests/utils.py b/gcsfs/tests/utils.py index 537ba030..a07c59f6 100644 --- a/gcsfs/tests/utils.py +++ b/gcsfs/tests/utils.py @@ -1,177 +1,8 @@ from contextlib import contextmanager -import gzip -import json import os import shutil -import re -import pickle import tempfile -from gcsfs.core import GCSFileSystem -from gcsfs.tests.settings import ( - TEST_BUCKET, - TEST_PROJECT, - RECORD_MODE, - GOOGLE_TOKEN, -) - -import vcr - - -def before_record_response(response): - r = pickle.loads(pickle.dumps(response)) - for field in ["Alt-Svc", "Date", "Expires", "X-GUploader-UploadID"]: - r["headers"].pop(field, None) - if "Location" in r["headers"]: - loc = r["headers"]["Location"] - if isinstance(loc, list): - r["headers"]["Location"] = [ - r["headers"]["Location"][0] - .replace(TEST_BUCKET, "gcsfs-testing") - .replace(TEST_PROJECT, "test_project") - ] - else: - r["headers"]["Location"] = loc.replace( - TEST_BUCKET, "gcsfs-testing" - ).replace(TEST_PROJECT, "test_project") - try: - try: - data = json.loads(gzip.decompress(r["body"]["string"]).decode()) - if "access_token" in data: - data["access_token"] = "xxx" - if "id_token" in data: - data["id_token"] = "xxx" - if "refresh_token" in data: - data["refresh_token"] = "xxx" - if "expires_in" in data: - data.pop("expires_in") - # If comparing encoded string fails, dump it in a decoded form - # to see which value has changed. - r["body"]["string"] = gzip.compress( - json.dumps(data) - .replace(TEST_PROJECT, "test_project") - .replace(TEST_BUCKET, "gcsfs-testing") - .encode() - ) - except (OSError, TypeError, ValueError): - r["body"]["string"] = ( - r["body"]["string"] - .replace(TEST_PROJECT.encode(), b"test_project") - .replace(TEST_BUCKET.encode(), b"gcsfs-testing") - ) - except Exception: - pass - return r - - -def before_record(request): - r = pickle.loads(pickle.dumps(request)) - for field in ["User-Agent"]: - r.headers.pop(field, None) - r.uri = request.uri.replace(TEST_PROJECT, "test_project").replace( - TEST_BUCKET, "gcsfs-testing" - ) - if r.body: - for field in GOOGLE_TOKEN: - r.body = r.body.replace(GOOGLE_TOKEN[field].encode(), b"xxx") - r.body = r.body.replace(TEST_PROJECT.encode(), b"test_project").replace( - TEST_BUCKET.encode(), b"gcsfs-testing" - ) - r.body = re.sub(b"refresh_token=[^&]+", b"refresh_token=xxx", r.body) - r.body = re.sub(b"assertion=[^&]+", b"assertion=xxx", r.body) - return r - - -def matcher(r1, r2): - if ( - r2.uri.replace(TEST_PROJECT, "test_project").replace( - TEST_BUCKET, "gcsfs-testing" - ) - != r1.uri - ): - return False - if r1.method != r2.method: - return False - if r1.method != "POST" and r1.body != r2.body: - return False - if r1.method == "POST": - if "upload_id" in r1.uri and "upload_id" in r2.uri: - # vcrpy looses body on redirect with aiohttp - if r2.body is None and int(r2.headers["Content-Length"]) > 1: - r2.body = r1.body - try: - return json.loads(r2.body.decode()) == json.loads(r1.body.decode()) - except: # noqa: E722 - pass - r1q = (r1.body or b"").split(b"&") - r2q = (r2.body or b"").split(b"&") - for q in r1q: - if b"secret" in q or b"token" in q: - continue - if q not in r2q: - return False - else: - for key in ["Content-Length", "Content-Type", "Range"]: - if key in r1.headers and key in r2.headers: - if r1.headers.get(key, "") != r2.headers.get(key, ""): - return False - return True - - -recording_path = os.path.join(os.path.dirname(__file__), "recordings") - -my_vcr = vcr.VCR( - cassette_library_dir=recording_path, - record_mode=RECORD_MODE, - path_transformer=vcr.VCR.ensure_suffix(".yaml"), - filter_headers=["Authorization"], - filter_query_parameters=[ - "refresh_token", - "client_id", - "client_secret", - "assertion", - ], - before_record_response=before_record_response, - before_record=before_record, -) -my_vcr.register_matcher("all", matcher) -my_vcr.match_on = ["all"] -files = { - "test/accounts.1.json": ( - b'{"amount": 100, "name": "Alice"}\n' - b'{"amount": 200, "name": "Bob"}\n' - b'{"amount": 300, "name": "Charlie"}\n' - b'{"amount": 400, "name": "Dennis"}\n' - ), - "test/accounts.2.json": ( - b'{"amount": 500, "name": "Alice"}\n' - b'{"amount": 600, "name": "Bob"}\n' - b'{"amount": 700, "name": "Charlie"}\n' - b'{"amount": 800, "name": "Dennis"}\n' - ), -} - -csv_files = { - "2014-01-01.csv": ( - b"name,amount,id\n" b"Alice,100,1\n" b"Bob,200,2\n" b"Charlie,300,3\n" - ), - "2014-01-02.csv": b"name,amount,id\n", - "2014-01-03.csv": ( - b"name,amount,id\n" b"Dennis,400,4\n" b"Edith,500,5\n" b"Frank,600,6\n" - ), -} -text_files = { - "nested/file1": b"hello\n", - "nested/file2": b"world", - "nested/nested2/file1": b"hello\n", - "nested/nested2/file2": b"world", -} -allfiles = dict(**files, **csv_files, **text_files) -a = TEST_BUCKET + "/tmp/test/a" -b = TEST_BUCKET + "/tmp/test/b" -c = TEST_BUCKET + "/tmp/test/c" -d = TEST_BUCKET + "/tmp/test/d" - @contextmanager def ignoring(*exceptions): @@ -209,31 +40,3 @@ def tmpfile(extension="", dir=None): else: with ignoring(OSError): os.remove(filename) - - -@contextmanager -def gcs_maker(populate=False, **kwargs): - gcs = GCSFileSystem(TEST_PROJECT, token=GOOGLE_TOKEN, **kwargs) - gcs.invalidate_cache() - try: - # ensure we're empty. - try: - gcs.rm(TEST_BUCKET, recursive=True) - except FileNotFoundError: - pass - try: - gcs.mkdir( - TEST_BUCKET, default_acl="authenticatedread", acl="publicReadWrite" - ) - except Exception: - pass - - if populate: - gcs.pipe({TEST_BUCKET + "/" + k: v for k, v in allfiles.items()}) - gcs.invalidate_cache() - yield gcs - finally: - try: - gcs.rm(gcs.find(TEST_BUCKET)) - except: # noqa: E722 - pass